我有一个VS2005项目,其中包含一些Web服务引用。该项目最近已升级到VS2008,但现在Web引用存在问题......可能是因为它们可能没有正确升级。
当我选择更新Web引用时,出现以下错误:
“值不能为空。参数名称:discoveryError%mexError”非常有帮助。
然后我删除了网络参考,意图重新添加...
出现“添加Web引用”对话框,并成功加载有关与Web服务关联的每个方法的信息。
但是,我无法添加引用,因为执行此操作的按钮显示为灰色,并且有一个标题为“此URL中找到的Web服务:”的文本框,其中包含“由于当前操作无效的操作”对象的状态“。
现在终于,这让我想到了我的主要问题......那么我如何添加这个网络参考?或者更好的是,我如何找出“对象的当前状态”无效?
有没有人在VS2008中有类似的经历?
答案 0 :(得分:9)
我在VS2010上遇到了同样的问题。在我的情况下,问题是代理服务器。我从外部网址获取了wsdl。我的解决方案:在VS2010中设置代理。编辑devenv.exe.config并在<defaultProxy>
下添加<system.net>
:
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy bypassonlocal="True" proxyaddress="http://yourproxyserver:port"/>
</defaultProxy>
</system.net>
如果代理来自.pac文件,您可以省略<proxy>
标记:
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
</defaultProxy>
</system.net>
关于相关问题的旧帖子:
http://fhtino.blogspot.it/2006/11/visual-studio-2005-proxy-problem-in-add.html
答案 1 :(得分:3)
终于明白了。
我用WebService Studio让我更好地了解发生了什么。它返回错误消息“请求失败,HTTP状态407:需要代理身份验证”....这让我知道我必须安装新的安全证书...旧的安全证书已过期。
我想这回答了关于如何找到有关Web服务无效的更多信息的问题。
答案 2 :(得分:0)
我遇到了同样的错误:使用Visual Studio 2008的更新引用
"Value cannot be null. Parameter name: discoveryError % mexError
我已经修复了它,检查项目的文件夹ACL列表。 当然,我需要将IUSR添加到文件夹的安全性......就是这样!
我为我工作,我也希望能帮助任何人......
答案 3 :(得分:0)
我不知道是什么原因导致了这个错误。我无法向服务添加Web引用,但我可以添加服务引用。不幸的是,我需要Web Reference。
所以我做的是将WSDL下载到我的机器上。当VS 2012要求引用URL时,我在我的机器上输入了WSDL文件的路径。这为我创建了Web Reference。
然后我进入了reference.map并将WSDL的位置从本地路径更改为URL。我还没有尝试过,但我认为它应该有用......至少我创建了我的网络参考。
答案 4 :(得分:0)
有人摆弄我的IIS。该服务禁用了匿名身份验证,一旦重新启用,此错误消息就会消失。