2009-07-14 8 views
2

私のシナリオは次のとおりです。ASPからASP.NetへのServer.Transfer

デスクトップアプリケーションは、Webアプリケーションの特定のASPページにXMLデータで投稿します。 WebアプリケーションはASP.Netに書き直されています。ただし、特定のページのUrlは変更できません(デスクトップアプリケーションのため)。

<% Server.Transfer("MyApp/NewXmlHandler.aspx") %> 

をしかし、この:

私のオリジナルのアイデアはそうのようなASPページを変更することで、要求を処理する新しいASPXページへの古典的なASPページからの要求、単に「前方」にしました動作しません:

アクティブサーバーページエラー 'ASP 0221' 無効な@コマンドディレクティブ /MyApp/NewXmlHandler.aspx、ライン1

投稿されたデータをASPページに入れて別のページに転送する簡単な方法はありますか?

ありがとうございます!

答えて

2

誰がこのに実行される場合には、私はそうのように沿って要求を渡してしまった:

<% 
    Dim postData 
    Dim xmlhttp 

    'Forward the request to let .Net handle 
    Set xmlhttp = server.CreateObject("MSXML2.ServerXMLHTTP") 
    xmlhttp.Open "POST","http://127.0.0.1/MyApp/NewXmlHandler.aspx",false 

    xmlhttp.send(Request) 

    Response.Write xmlhttp.responseText 

    Set xmlhttp = nothing 
%> 
2

クエリーストリングにフォーム値を入れて(URLエンコードして)、代わりにResponse.Redirectを使用します。 Server.Transferは実行を再開し、ASP 3.0でASP.NETページを実行することはできません。

+0

私はここで2つの潜在的な問題は1)URLの長さの制限はあると思いますか? 2)デスクトップアプリケーションがリダイレクト要求に応答できるかどうかわからない – John

+1

もう1つの解決策は、それらをセッションに入れてセッションを共有することです。 http://msdn.microsoft.com/en-us/library/ us/library/aa479313.aspx –

0

ASP.NETルーティングを使用できますか?その場合は、POSTを.aspページの代わりに.aspxページにルーティングしてください。

0

私はこの1つだけのようにも、同様の問題に取り組んでいるが、私はまた、認可に対処する必要があります。あなたの場合、はるかに簡単で、この問題に遭遇する可能性のある人は、URLRewriteまたは.htaccessがそのトリックを行うと思います。