我正在开发一个 API 并使用 ASP.NET Web API 来公开它。我尝试向负责身份验证和授权的命名管道服务添加服务引用,但无法在代码中引用它。
该命名管道服务运行正常,并用于各种项目。这是我们第一次尝试将它与 ASP.NET MVC 4 一起使用。它在另一个使用 ASP.NET MVC 3 的项目中运行得很好。
如下图所示,我可以添加服务引用。但它没有出现在对象浏览器或自动完成中!
当我尝试调用该服务时,它没有出现在任何地方。
这似乎是 ASP.NET MVC 4 项目和命名管道服务引用的问题。
我真的不知道这是否是众所周知/有记录的行为,但我无法在互联网上找到与该问题相关的任何有用信息。
我可以在任何类型的项目(ASP.NET MVC 4 项目除外)上使用 Visual Studio 2012 添加对该服务的引用。该问题与 ASP.NET MVC 4 项目特别相关。
我尝试使用 Visual Studio 2010 添加引用,但遇到了同样的问题:与 ASP.NET MVC 3 和任何其他类型的项目配合得很好。同样,该问题与 ASP.NET MVC 4 项目特别相关。
有人遇到同样的问题吗?我该如何度过这个难关?
最佳答案
由于它似乎是 Visual Studio/ASP.NET MVC 错误,我刚刚找到了解决方法。
我刚刚发现我可以使用svcutil命令行工具,用于生成服务客户端和数据结构的代码。以下是该命令的语法:
> svcutil net.pipe://my_sevice/mex /namespace:"*, MyNamespace"
它生成了以下文件:
- SecurityService.cs
- 输出.config
然后,我将生成的 SecurityService.cs 文件导入到当前项目中,并将生成的 output.config 上可用的绑定(bind)配置与我自己的 web.config 进行合并。
关于asp.net - 命名管道引用不适用于 ASP.NET MVC 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13535522/