2016-02-17 70 views
1

我需要從經典的asp頁面調用我的.NET(C#)web服務。我想通過創建一個調用asp頁面的控制檯應用程序來測試它。 這是我的ASP頁:從控制檯應用程序調用經典的asp頁面

Dim strUserID 
Dim strUserName 
Dim strUserEmail 

strUserID = Request.Form("UserID") 
strUserName = Request.Form("UserName") 
strUserEmail = Request.Form("UserEMail") 

SET objSoapClient = Server.CreateObject("MSSOAP.SoapClient") 
objSoapClient.ClientProperty("ServerHTTPRequest") = True 

Call objSoapClient.mssoapinit("http://localhost:/MyWebService/Service1/" & _ 
            "MyWebService.asmx?WSDL", "MyWebService") 

strReturnValue = objSoapClient.SendData(strUserID, strUserName, strUserEmail) 
response.Write("Returned from service with return value: " & strReturnValue) 

現在我的控制檯應用程序必須調用.asp頁。 如何構建URL? 如果asp頁面位於以下文件夾中:C:\ Folder1 \ OldPage.asp,我該如何構建URL?

這是我到目前爲止有:

static void Main(string[] args) 
{ 
    WebClient client = new WebClient();  
    Uri aspPagingServiceUri = new Uri("http://localhost/Folder1/OldPage.asp?UserID=g39s24&UserName=Gloria [email protected]"); 
    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(aspPagingServiceUri);  
    httpWebRequest.Method = "GET"; 
    var response = httpWebRequest.GetResponse(); 
    HttpWebResponse resp = (HttpWebResponse)httpWebRequest.GetResponse(); 
    Stream resStream = resp.GetResponseStream(); 

    StreamReader reader = new StreamReader(resStream); 
    string strResponse = reader.ReadToEnd(); 
    Console.WriteLine(strResponse); 

    reader.Close(); 
} 

我得到的錯誤:「遠程服務器返回錯誤:(503)服務器不可用。 '當它到達GetResponse函數。

我相信我的問題是與URL的創建。

謝謝。

UPDATE 我試圖連接到Web服務器上的ASP文件。我收到(500)錯誤:「遠程服務器返回錯誤:(500)內部服務器錯誤。」 該文件夾是:C:\的Inetpub/wwwroot文件/應用程序/服務/ ServiceNew.asp 這是我的控制檯應用程序:

static void Main(string[] args) 
{ 
    try 
    { 
     WebClient client = new WebClient(); 
     Uri aspPagingServiceUri = new Uri("http://myserverName/Apps/Services/ServiceNew.asp?UserID=g39r345&UserName=John Smith&[email protected]&Subject=Test&MSG=Testing&ContactList=Sam Smith;"); 
     HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(aspPagingServiceUri); 
     httpWebRequest.Method = "GET"; 
     var response = httpWebRequest.GetResponse(); 
     HttpWebResponse resp = (HttpWebResponse)httpWebRequest.GetResponse(); 
     Stream resStream = resp.GetResponseStream(); 

     StreamReader reader = new StreamReader(resStream); 
     string strResponse = reader.ReadToEnd(); 
     Console.WriteLine(strResponse); 

     reader.Close(); 
    } 
    catch (WebException wex) 
    { 
     Console.WriteLine("Web Exception: " + wex.Message); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine("General Exception: " + ex.Message); 
    } 
} 

錯誤發生var response = httpWebRequest.GetResponse();

我是否正確地創建網址是什麼?
我只是跟隨文件路徑。

+0

我正在調用一個經典的ASP文件來運行。我不知道它是否有特殊的庫,要添加的組件。 –

+0

道歉 - 我會刪除。 – Paul

回答

2

您不能直接執行ASP代碼。您需要設置可在本地網絡中的另一臺計算機上或外部執行經典ASP(即Internet信息服務(IIS))的Web服務器。

IIS是某些Windows發行版的一部分,您可能只需激活它即可。確保安裝傳統的ASP模塊,因爲現在缺省情況下未安裝該模塊。

警告:傳統的ASP通常依賴於額外的COM組件。所以你可能需要安裝更多才能使你的代碼正常工作。

+0

謝謝。我將這個ASP文件從我們的一個應用程序正在調用的Web服務器中提取出來。所以,從理論上講,我可以將該文件放在該Web服務器上,並使用我的控制檯應用程序調用它。 –

+0

是的,ASP文件只能在Web服務器上運行。您可以將URL放在一起並在瀏覽器中進行測試,並在控制檯應用程序中使用該URL。如果您的控制檯應用程序只是爲了調用,您也可以在Linux/Mac上的PowerShell或'curl'中使用'Invoke-WebRequest'(https://technet.microsoft.com/en-us/library/hh849901.aspx)一個Web服務。 – gpinkas

+0

控制檯應用程序只是模擬將運行ASP文件的應用程序的驅動程序。我必須更改ASP文件來調用我使用C#.NET 4.0 Framework創建的Web服務。我只是設置測試環境來運行ASP文件。 –