2008-10-30 40 views
4

說明:這不是關於的用戶代理調用頁面,而是傳統的ASP調用ASP.NET!在經典ASP中利用SOAP

我有從經典ASP到ASP.NET過渡中途的應用程序。有五百萬行代碼,因此一次完全重寫所有內容都不太合理,或者考慮到絕大多數的經典ASP頁面工作得很好,坦率地謹慎。我們翻譯頁面和功能,因爲他們提出修改無論如何,不只是因爲它是「酷」。

既然已經轉換了大約一半的頁面,我們已經將一些關鍵功能轉移到了ASP.NET。我沒有保留這個功能的舊版本(這意味着需要維護兩個位置而不是一個),我一直在使用SOAP來公開這個功能。

呃......不是。相反,我們一直在使用我以前稱之爲「可憐的人的SOAP」的東西,儘管今天把它稱爲REST是很時髦的。我一直在使用ServerXMLHTTP聯繫目標頁面,捆綁XML球並將其發佈到ASP.NET端。結果我捆綁了一些XML並使用XPATH將其分解爲變量。

所有這些工作都非常出色。然而,我一直在考慮內置ASP.NET SOAP特性,這似乎消除了爲我的跨平臺調用自定義編寫登陸頁面的需要......但是當我從經典ASP中看待消費SOAP時,大多數人建議使用看似折舊肥皂工具包。

問題是;你們有沒有使用過這種設置的經驗,如果有的話,有沒有比定製REST頁面或Soap Toolkit更好的方式來做到這一點?我認爲能夠更快速地公開更多ASP.NET功能將有助於遷移,但我不想讓自己陷入不必要的Soap Toolkit等傳統技術。

回答

1

我使用Prototype與許多經典的ASP頁面進行AJAX調用。我更喜歡使用JSON而不是XML來處理數據層。與SOAP + XML相比,Ajax + JSON更輕更快,更容易處理。

+0

這不是關於客戶端SOAP,而是傳統ASP在同一臺機器上調用ASP.NET SOAP。 – Godeke 2008-10-30 17:16:59

1

我可以用下面的代碼要做到這一點,很明顯,你需要改變一些事情,但希望這可以讓你開始:

Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")       
xmlhttp.open "POST", soapServer, False 
xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8" 
xmlhttp.setRequestHeader "SOAPAction", char(34) & "WebPlatform.WebServices/ISessionTokenServiceV1/CreateSessionToken" & char(34) 

xmlhttp.send soapMessage 

的SOAPMessage將要發送的SOAP請求。 soapServer是Web服務的URL,例如:http://localhost:8000/WebServices/SampleService.svc/BASIC