来自经典asp页面的Web服务调用不返回字符串但不会失败

时间:2016-02-24 21:51:18

标签: web-services soap asp-classic

我试图从经典的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。基本上...” enter image description here

.asp文件中未调用TestMethod() 请求SOAPAction时,这条线是否正确? URL = "http://<serverName>:<port>/Service1/Service1.Paging.svc" httpRequest.setRequestHeader "SOAPAction", URL & "/TestMethod"

其次,我怀疑我的SOAP请求字符串可能不正确。 在定义命名空间时,我正在执行以下操作: ' “:/服务1” “&gt;” 中'

0 个答案:

没有答案