我无法在 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 问题的引用

无法从本地机器调用 WCF 服务

无法从本地机器调用 WCF 服务

在类库项目中添加 WCF 服务引用,并在使用该类库的网站中添加相同的 WCF 引用。

如何将具有许多功能的大型 WCF 服务导入 VS 2010?