我正在研究一个API,并使用ASP.NET Web API来公开它。我试图将服务引用添加到负责身份验证和授权的命名管道服务,但是无法在我的代码中引用它。
命名管道服务正常运行,并且已在许多项目中使用。这是我们第一次尝试将其与ASP.NET MVC 4一起使用。在另一个使用ASP.NET MVC 3的项目中,它运行得很好。
就像您在下图中看到的一样,我能够添加服务引用。但是它没有出现在对象浏览器上或自动完成!
当我尝试调用该服务时,它不会显示在任何地方。
ASP.NET MVC 4项目和“命名管道”服务引用似乎存在问题。
我真的不知道这是否是众所周知的/有记录的行为,但我无法在互联网上找到与该问题相关的任何有用信息。
我可以在任何类型的项目上使用Visual Studio 2012添加对该服务的引用,ASP.NET MVC 4除外。该问题特别与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文件导入到我的当前项目中,并将生成的output.config上可用的绑定(bind)配置与我自己的web.config合并。