我需要从经典的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();
我是否正确创建了网址?
我只是按照文件路径。
答案 0 :(得分:2)
您无法直接执行ASP代码。您需要的是设置一个可以在您的计算机上,本地网络中的另一台计算机上或外部执行经典ASP(即Internet信息服务(IIS))的Web服务器。
IIS是某些Windows发行版的一部分,您可能只需要激活它。确保安装经典ASP模块,因为现在默认情况下不会安装它。
警告:经典ASP通常依赖于其他COM组件。因此,您可能需要安装更多代码才能使代码正常工作。