eyc*_*ych 9 wcf proxy visual-studio-2010
我知道还有其他类似的问题,但我找不到工作回复.
我从模板[随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.
编辑:
刚刚创建了一个Console App并添加了服务引用,它创建了代理.所以问题是我的网站没有创建代理...
我有同样的问题,发现在所有引用的程序集中取消选中重用类型确实解决了这个问题.但是,就我而言,我需要它来重用我引用的一些库中的类型.我发现这篇文章,涵盖了一个非常类似的问题.在该帖子中,它引用了一篇Microsoft知识库文章,该文章描述了针对以下问题的修复:
请考虑以下情形:
- 您在Visual Studio 2012中创建一个ASP.NET MVC4 Web API项目.
- 您在项目中添加WCF服务引用.
在此方案中,服务引用的Reference.cs文件为空.
原因
出现此问题是因为
DataContractSerializer该类遇到了Newtonsoft.Json.Linq.JToken它不支持的type().在这种情况下,它会抛出异常,然后停止生成服务引用.
我没有引用那个JSON库,但是,基于该bug描述,我推测我的一个引用的库必定有类似的问题.我认为我引用的其中一个库可能包含一个不受其支持的类型DataContractSerializer,它正在抛出相同类型的异常,因此它以同样的方式失败.
果然,我发现,在我的情况下,罪魁祸首是我自己的一个库,它碰巧包含了同一个WCF服务的公共代理.我怀疑这是导致麻烦的公共代理.在任何情况下,通过选择指定引用程序集中的重用类型,然后选择除该程序集之外的所有程序集,服务引用会自动正确生成代理类.
| 归档时间: |
|
| 查看次数: |
3988 次 |
| 最近记录: |