我无法在 VS2012 中将服务引用(WCF 库)添加到 MVC4
Posted
技术标签:
【中文标题】我无法在 VS2012 中将服务引用(WCF 库)添加到 MVC4【英文标题】:I cannot add service reference(WCF library) to MVC4 in VS2012 【发布时间】:2013-04-29 05:25:33 【问题描述】:我的问题很简单,但不幸的是我无法弄清楚出了什么问题。我用 Razor 语法创建了一个新的 MVC4 Internet 应用程序项目,然后我向这个解决方案添加了另一个 WCF 库项目。我没有对这些代码进行任何更改。但是,当我在 MVC 4 应用程序中添加 WCF 项目作为服务引用时,我收到 1 条错误消息和 3 条警告消息:
-
错误 4 自定义工具错误:无法为服务生成代码
参考“ServiceReference1”。请检查其他错误和警告
消息了解详情。 c:\users\vendre\documents\visual studio
2012\项目\MvcApplication3\MvcApplication3\服务
References\ServiceReference1\Reference.svcmap 1 1 MvcApplication3
警告 1 自定义工具警告:无法导入 wsdl:portType 详细信息:
运行 WSDL 导入扩展时引发异常:
System.ServiceModel.Description.DataContractSerializerMessageContractImporter
错误:无法加载文件或程序集“DotNetOpenAuth.AspNet,
版本=4.0.0.0,文化=中性,PublicKeyToken=2780ccd10d57b246'
或其依赖项之一。系统找不到文件
指定。
警告 2 自定义工具警告:无法导入 wsdl:binding 详细信息:
导入 wsdl:portType 时出错,该 wsdl:binding
是依赖的。 wsdl:portType 的 XPath:
//wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IService1']
警告 3 自定义工具警告:无法导入 wsdl:port 详细信息:那里
导入 wsdl:binding 时出错,该 wsdl:port 是
依赖于。 wsdl 的 XPath:绑定:
//wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='BasicHttpBinding_IService1']
我阅读了一些文章,但没有解决我的问题。如果有人知道我的问题的答案,请告诉我。
谢谢。
【问题讨论】:
你试过这个smehrozalam.wordpress.com/2009/10/29/… 是的,我尝试了所有的集合类型,但问题仍然存在。谢谢你的建议。 错误很明显:无法加载文件或程序集 'DotNetOpenAuth.AspNet - 所以请确保在添加该服务时该/那些文件可用参考... 【参考方案1】:当您添加参考时,在高级设置中删除重用类型复选框。
【讨论】:
解决方案效果很好,但有没有解释为什么会破坏它? 优秀的答案。 @Tim:我怀疑这一定与 MVC4 项目模板可能不包含 WCF 代理生成需要“重用”的一些程序集有关。 太棒了,这让我发疯了......我什至不在乎如何或为什么! (开个玩笑我想知道:)) 我猜这是最高的[获得的积分]/[输入的字数]比率之一。 :-) 虽然这对我也有用,但我同意@Tim。理解这一点会很好,因为这种解决方案的后果是项目中可能会出现类的重复。【参考方案2】:如果您在 2021 年使用 VS2019 遇到此问题。在项目中添加一个名为“Connected Services”的文件夹
【讨论】:
对我来说是“服务参考”。谢谢【参考方案3】:如果使用 VS 2019,请检查在解决方案资源管理器中是否看到“服务参考”。比编辑项目文件以进行以下操作
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
【讨论】:
以上是关于我无法在 VS2012 中将服务引用(WCF 库)添加到 MVC4的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio 2019 中将 WCF 服务添加到 .NET Core 项目?
在 VS 2010 中更新 WCF 服务对 WebService 问题的引用