将WCF服务添加到ASP.NET MVC项目

时间:2009-10-26 21:42:22

标签: asp.net-mvc wcf

我正在尝试将WCF服务添加到我现有的ASP.NET MVC Web应用程序中,但是使用WCF测试客户端应用程序,我不断获得HTTP 404以获取.svc文件的URL。

当我将新的WCF服务添加到项目中时,它似乎会自动对web.config文件进行一系列更改。我试图在global.asax文件中破解我的路由以忽略.svc文件,看看是否有帮助 - 它没有。

我还使用Visual Studio中的编辑器工具编辑了WCF配置设置,以添加基本的http端点。

我只需要为项目的一小部分提供WCF服务,以便与另一个广泛使用WCF的系统进行集成。

更新:当我在提供的对话框中添加URL http://localhost/LabManagerDev/Development/SoftwareRequests.svc时,以下是WCF测试客户端应用程序的一些输出。

错误:无法从http://localhost/LabManagerDev/Development/SoftwareRequests.svc获取元数据 如果这是您有权访问的Windows(R)Communication Foundation服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅http://go.microsoft.com/fwlink/?LinkId=65455上的MSDN文档。 WS-Metadata Exchange错误     URI:http://localhost/LabManagerDev/Development/SoftwareRequests.svc     元数据包含不能的引用     已解决:'http://localhost/LabManagerDev/Development/SoftwareRequests.svc'。     HTTP请求未经授权,客户端身份验证方案为“匿名”。该     从服务器收到的身份验证标头是“Negotiate,NTLM”。     远程服务器返回错误:(401)未经授权。 HTTP GET错误     URI:http://localhost/LabManagerDev/Development/SoftwareRequests.svc     下载“http://localhost/LabManagerDev/Development/SoftwareRequests.svc”时出错。     请求失败,HTTP状态为404:Not Found。

2 个答案:

答案 0 :(得分:0)

在全局文件中(配置了全局路由),请务必为svc文件添加特定的忽略。

答案 1 :(得分:0)

两个问题:

  1. 需要启用匿名身份验证
  2. WCF模块未在我的IIS7安装中注册
  3. this site开始,必须从“C:\ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation”位置运行ServiceModelReg -i。