wcf - 添加服务引用不生成代理

标签 wcf visual-studio-2010 proxy

我知道还有其他类似的问题,但我无法找到有效的答复。

我从模板 [GetData() 和 GetDataUsingDataContract() 附带的] 中创建了默认的 WCF 服务。
它在浏览器中运行良好。

我有一个单独的网站,我向其中添加了这个新的 WCF 服务:

我执行“添加服务引用”,输入我的 URL,服务出现,然后单击“确定”添加它。
在“App_WebReferences”下,我看到了我添加的服务的命名空间:“ServiceReference1”,下面有“References.svcmap”,下面还有几个 .svcinfo/.wsdl/.xsd 文件。

没有创建代理文件,但是 <system.serviceModel>元素被添加到我的 web.config 中,似乎是正确的信息。

但是,没有代理,我无法访问/调用我的服务中的任何方法(即 ServiceReference1.WCFMethod1() )

我可以调用 svcutil,生成代理,将其添加到我的 App_Code 中,然后一切正常。
我的问题是,为什么我的代理不是使用“添加服务引用”创建的?
一切都在目标框架下:.NET Framework 4。

编辑:

刚刚创建了一个控制台应用程序并添加了服务引用并创建了代理。
所以问题是我的网站没有创建代理......

最佳答案

我遇到了同样的问题,发现取消选中 在所有引用的程序集中重用类型 确实解决了问题。但是,就我而言,我需要它来重用我引用的一些库中的类型。我找到了this post ,涵盖了一个非常相似的问题。在那篇文章中,它引用了 Microsoft knowledge-base article其中描述了以下问题的修复:

Consider the following scenario:

  • You create an ASP.NET MVC4 Web API project in Visual Studio 2012.
  • You add a WCF service reference in the project.

In this scenario, the Reference.cs file for the service reference is empty.

Cause

This issue occurs because the DataContractSerializer class has encountered a type (Newtonsoft.Json.Linq.JToken) that it does not support. In this case, it throws an exception, and then stops generating the service reference.



我没有引用那个 JSON 库,但是根据那个错误描述,我推测我引用的库之一肯定有类似的问题。我认为我引用的库之一可能包含 DataContractSerializer 不支持的类型。 ,它抛出了同样的异常,因此它以同样的方式失败。

果然,我发现,就我而言,罪魁祸首是我自己的库之一,它恰好包含同一个 WCF 服务的公共(public)代理。我怀疑是那个公共(public)代理造成了麻烦。在任何情况下,通过选择 在指定的引用程序集中重用类型 ,然后选择除此之外的所有程序集,服务引用自动正确生成代理类。

关于wcf - 添加服务引用不生成代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8422423/

相关文章:

c# - 跨进程(和机器)同步(信号量)

web-services - 通过具有 NTLM 授权的代理请求具有基本授权的 Web 服务不起作用

c# - 从 Java Servlet 调用 WCF Web 服务

.net - NuGet 2.8.6 导致对 .NET 4.5+ 的依赖?

Docker 无法在代理 TLS 握手超时后拉取图像

c# - 从 unity3D 使用 WCF

visual-studio-2010 - 为什么 Visual Studio 解决方案不再绑定(bind)到 Visualsvn

c++ - OpenCV 2.2 VS2010 - 用非常简单的代码获取 "Access violation reading"

c# - 如何禁用 .NET Core http 客户端中的 SSL 证书检查?

http - 检查通过代理路由的请求如何到达目的地