0

在在这里发布这个问题之前,我已经广泛研究了网络,找不到任何对我有用的东西,所以就在这里。提前为文字墙道歉。

我有一个经典的ASP网站,需要在asp.net网站(4.0)上调用web服务方法(不是wcf,而是asmx页面)

我使用网络服务的方式如下:

我有一个 webserviceclass.asp 可以帮助我使用经典 asp 中的 web 服务。

webserviceclass.asp 的代码 -> https://docs.google.com/file/d/0B1Wr1Kw74xy3ZkducEtiTWNtWDA/edit?usp=sharing

然后调用该类来使用该方法。

Dim strWebServiceResult
Dim ws
Set ws = new webservice
ws.url = "http://www.myurl.com/mywebservice.asmx"
ws.method = "HelloWorld"

ws.parameters.Add "Parameter1", "Test1"
ws.parameters.Add "Parameter2", "Test2"

ws.Execute

strWebServiceResult = ws.response

如果 www.myurl.com 未加密,这非常有效,strWebServiceResult 保存 mywebservice.asmx 返回的 XML,但是我确实需要加密用户和 www.myurl.com 之间传输的数据(mywebservice.asmx 具有登录参数和密码在网络服务上进行身份验证)所以我购买了一个 SSL 证书并将其分配给 www.myurl.com 网站成为https://www.myurl.com

因此,当我将类中的 URL 设置为:ws.url = "https://www.myurl.com/mywebservice.asmx" 并且这是唯一改变的事情时,该方法不再被调用。我已经登录了 mywebservice.aspx 的 pageinit 和 pageload,它甚至没有被调用。

很抱歉文字很长,我希望有人能帮助我。我没有使用 jquery 或 json 的经验,我不想那样解决这个问题,但如果这是唯一的方法,我可以尝试是否有足够的信息来帮助我,但我宁愿尝试修复如果可能的话,我当前的代码。我只是不明白为什么它适用于 http 但不适用于 https

提前谢谢了

4

1 回答 1

0

在这个 SO 问题(“ Can't use HTTPS with ServerXMLHTTP object ”)中,这个问题得到了解决。

首先,您应该在服务器端使用“MSXML2.ServerXMLHTTP”而不是“Microsoft.XMLHTTP”。这在这里讨论,fi:Msxml2.ServerXMLHTTP 和 WinHttp.WinHttpRequest 之间的区别?

于 2013-06-13T14:33:49.967 回答