2009-07-14 18 views
2

這裏是我的情況:Server.Transfer的從ASP到ASP.Net

一個桌面應用程序發送到特定的ASP頁面中使用XML數據我的Web應用程序。 Web應用程序正在被重寫到ASP.Net;但是,該特定頁面的Url無法更改(由於桌面應用程序)。

我最初的想法是簡單的「前進」從傳統的ASP頁面的請求,到一個新的ASPX頁面,這將處理該請求,通過改變ASP頁面,如下所示:

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

然而,這不工作:

的Active Server Pages錯誤 '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

我認爲這兩個潛在的問題是1)有一個URL的長度限制?和2)我不知道桌面應用程序是否可以響應重定向請求 – John 2009-07-14 20:31:30

0

你可以使用ASP.NET路由嗎?如果是這樣,只需將POST路由到.aspx頁面而不是.asp頁面。

0

我工作的一個類似的問題,就像這一個,但我也必須處理授權。在你的情況下,它更簡單,對於那些可能遇到這個問題的人來說,我認爲URLRewrite或.htaccess會起作用。