当尝试从Windows窗体应用程序更新对已部署的asp.net webservice的Web引用时,出现错误。
Unable to download following files from .
https://webserver/webservices/myservice.asmx?wsdl
由于某种原因,它正在查看名为webserver的主机,但这不是它需要为WSDL寻找的东西。它需要查看我为Web服务引用开头的域名。我想我在IIS中遇到了问题。
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
您可以尝试使用wsdl.exe为同一个网址生成代理类吗?
wsdl /out:myProxyClass.cs https://<server>/webservices/myservice.asmx?wsdl
答案 1 :(得分:0)
我真的怀疑IIS存在问题,我建议您从Windows应用程序中删除对webservice的引用,并再次提供正确的Web服务URL。
另外,通过HTTPS访问web服务引入了它自己的共享单独的故障所以我建议你先尝试不使用HTTPS,让它工作,然后使用HTTPS。
答案 2 :(得分:0)
听起来您需要在IIS中配置服务器绑定,特别是主机标头值,以用于https。在IIS 6中,您无法通过IIS管理器UI执行此操作。您需要运行cscript adsutil.vbs。看看Configuring Server Bindings for SSL Host Headers (IIS 6.0)。
答案 3 :(得分:0)
根据Gulzar的建议,我使用wsdl.exe生成类,然后进入类并将服务器的本地主机名更改为可访问Internet的主机名。
BRILLIANT!
但是,将来我无法右键单击项目中的Web引用并选择UPDATE SOLUTION。 但是谁给了奶奶什么?
答案 4 :(得分:0)
我们有一个VS 2003 1.1 Web服务,无法连接wsdl定义无法加载。
原来问题是相对解决了Uri。我花了两天时间来弄明白这一点。
BAD:[WebService(Namespace =“http://../MyWebService.com/”]
GOOD:[WebService(Namespace =“http://tempuri.org/”]
验证默认命名空间是绝对地址。
有关详细信息,请访问:http://www.w3.org/TR/wsdl
希望这有帮助