![]() |
1
299
必须取消选中“配置服务引用”选项中所有引用程序集中的重用类型 |
![]() |
2
124
右键单击您的服务参考并选择
然后取消选中
点击
|
![]() |
3
17
在尝试使用Visual Studio 2012从ASP.Net MVC 4.0项目生成web服务的客户端时,我也遇到了类似的错误。 问题的根源似乎是,我试图从中生成客户端的项目引用的程序集反过来又依赖于另一个未被引用的程序集。 当在服务配置中启用“重用被引用程序集中的类型”时,服务生成器可能正在检查所有被引用程序集以获取可重用的类型列表。其中一个引用的程序集正在引用另一个不可用的程序集,这可能会导致生成器失败。 从服务配置中取消选中“重用引用程序集中的类型” ,但也有副作用。 存在重用类型选项是有原因的 在某些情况下,它避免了在使用服务的代码中不必要的强制转换。 例如,如果服务本身是使用WCF构建的,并且其中的某些方法参数的类型为System.Guid,则如果禁用“重用类型”选项,则它们将转换为生成的客户端中的字符串。 我更喜欢的选择 禁用重用类型就是从专门为此目的创建的类库项目中添加服务引用。要记住的一件事是将类库app.config中所有与服务相关的配置复制到启动项目的配置文件中。 如果在本地程序集中定义了需要在服务客户端中重用的类型,则只需从上述类库项目中引用这些程序集及其所有依赖项。 |
|
4
3
在我的例子中,我的WPF项目在VS.Net 2008中有这个问题。读完本文后,我意识到web服务中使用的程序集是客户端上使用的程序集的不同版本。 在客户端上更新程序集之后,它工作得很好。 |
![]() |
5
1
由于问题是由于WSDL中的错误和 如果不检查WSDL,我就不能做更多的评论。因此,如果您可以共享您的WSDL,请这样做。 我只能说,WSDL中似乎缺少一个模式(目标命名空间为“http://service.ebms.edi.cecid.hku.hk/”)。当include指令被忽略时,我知道模式的问题和不同处理方式。 一般来说,我发现微软的web服务实现非常好,所以我认为web服务正在发回不可靠的WSDL。 |
|
6
0
我在Silverlight 5(VS2012)中也遇到同样的错误 还可以删除对以下对象的引用:
更新服务引用后,请确保将它们重新添加到中。 |
![]() |
7
0
如上所述,可能存在两个不同的问题。我们发现WCF库的.DLL被添加为对客户端项目的引用。这反过来又造成了解析对象的问题,从而导致代码生成步骤“清空”文件。虽然取消选中“重用类型…”似乎是一个答案,但它会在新的名称空间中创建对象类型的额外定义,这些对象类型是真实类型的代理,然后会导致使用这些类型时出现各种“兼容性”问题。只有当你真的想“隐藏”一个类型时,你才应该选中这个选项。
|
![]() |
8
0
同样的问题,通过在管理模式下运行Visual Studio来解决 |
![]() |
9
0
当我遇到这个问题时 在VS2015 Professional中升级VS2010 WCF+Silverlight解决方案 . 除了自动从Silverlight 4升级到Silverlight 5之外,还更改了“服务引用重用”复选框值,生成失败。 |
![]() |
10
0
当发生此错误时,“重用类型”并不总是问题。 向旧服务添加引用时,请单击“高级”,然后单击“添加Web引用”。现在链接到您的wsdl,一切都应该正常。 |
![]() |
11
0
尝试更新服务引用时出现此问题(但仅在添加服务引用时出现此错误),但不希望删除“程序集重用”复选框。 对我有用的是:
我几乎准备放弃重用类型功能。。。 |
![]() |
12
0
|
![]() |
13
0
重新启动Visual Studio对我很有帮助。我正在使用VS 2015。 |