我试图从经典的asp文件中调用我的.NET Web服务。我必须更新asp文件以连接到新的Web服务。此asp文件由第三方应用程序调用,并向用户进行寻呼。我创建了一个.NET控制台应用程序来测试这个.asp文件,以模拟第三方应用程序对它的使用。控制台应用程序在本地运行。
当我运行控制台应用程序时,它运行连接到我的Web服务的新版本的asp文件,在我尝试显示来自Web服务的返回结果之前没有错误。我怀疑我的SOAP请求不正确。
Web服务方法称为“TestMethod”,没有参数。 这是Web服务的URL:'http://:/Service1/Service1.Paging.svc'
这是我的asp代码:
Set httpRequest = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
URL = "http://<servername><port>/Service1/Service1.Paging.svc/"
httpRequest.Open "POST", URL, False
httpRequest.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
httpRequest.setRequestHeader "SOAPAction", URL & "TestMethod"
Dim strSoapReq
strSoapReq = "<?xml version=""1.0"" encoding=""utf-8"" ?>"
strSoapReq = strSoapReq & "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"">"
strSoapReq = strSoapReq & "<s:Body>"
strSoapReq = strSoapReq & "<TestMethod xmlns=""http://<servername><port>/Service1"">"
strSoapReq = strSoapReq & "</TestMethod>"
strSoapReq = strSoapReq & "</s:Body>"
strSoapReq = strSoapReq & "</s:Envelope>"
Response.Write(strSoapReq)
httpRequest.Send(strSoapReq)
Dim strResult
strResult = httpRequest.responseText
If IsNull(strResult) Then
strResult = "No result"
End If
Response.Write("Result from web service: " & strResult);
如果我注释掉Response.Write
则没有错误。控制台应用程序完成。如果我尝试写结果,我会收到500错误。
我无法调试asp。它位于生产服务器上,服务器上没有Visual Studio IDE。
我的SOAP请求是否正确? (strSoapReq)
我不确定我是否正确定义了命名空间。它应该只是末尾名称空间的路径吗?
如果有人对如何调试此文件有任何想法,我将不胜感激。
最后,所有TestMethod()
都返回一个字符串,“连接到TestMethod”
更新 我可以连接到我的网络服务。当我运行我的控制台应用程序时,它会返回Web服务的标准消息,而不是Web浏览器中的URL。基本上...”
.asp文件中未调用TestMethod()
请求SOAPAction时,这条线是否正确?
URL = "http://<serverName>:<port>/Service1/Service1.Paging.svc"
httpRequest.setRequestHeader "SOAPAction", URL & "/TestMethod"
其次,我怀疑我的SOAP请求字符串可能不正确。 在定义命名空间时,我正在执行以下操作: ' “:/服务1” “&gt;” 中'