从控制台应用程序调用经典的asp页面

时间:2016-02-17 21:59:04

标签: web-services asp-classic httpwebrequest

我需要从经典的asp页面调用我的.NET(C#)Web服务。我想通过创建一个调用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 Test$UserEmail=gtest@hvhs.org");
    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函数时。

我认为我的问题在于创建网址。

感谢。

更新 我试图连接到Web服务器上的ASP文件。我收到一个(500)错误:"远程服务器返回错误:(500)内部服务器错误。" 该文件是文件夹:C:\ inetpub / wwwroot / Apps / Services / 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&UserEmail=jsmith@mydomain.com&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();

我是否正确创建了网址?
我只是按照文件路径。

1 个答案:

答案 0 :(得分:2)

您无法直接执行ASP代码。您需要的是设置一个可以在您的计算机上,本地网络中的另一台计算机上或外部执行经典ASP(即Internet信息服务(IIS))的Web服务器。

IIS是某些Windows发行版的一部分,您可能只需要激活它。确保安装经典ASP模块,因为现在默认情况下不会安装它。

警告:经典ASP通常依赖于其他COM组件。因此,您可能需要安装更多代码才能使代码正常工作。