将部署的asp.net webservice消耗到IIS6的问题

时间:2009-04-28 17:05:13

标签: .net asp.net web-services iis wsdl

当尝试从Windows窗体应用程序更新对已部署的asp.net webservice的Web引用时,出现错误。

Unable to download following files from .
https://webserver/webservices/myservice.asmx?wsdl

由于某种原因,它正在查看名为webserver的主机,但这不是它需要为WSDL寻找的东西。它需要查看我为Web服务引用开头的域名。我想我在IIS中遇到了问题。

我该怎么做才能解决这个问题?

5 个答案:

答案 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

希望这有帮助