2009-10-26 118 views
3

我想添加一个WCF服务到我现有的ASP.NET MVC的Web应用程序,但与WCF测试客户端应用程序,我不断得到HTTP 404到URL .svc文件。添加WCF服务到ASP.NET MVC项目

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

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

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

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

错误:无法从http://localhost/LabManagerDev/Development/SoftwareRequests.svc获取元数据 如果这是您有权访问的Windows(R)Communication Foundation服务,请检查是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅http://go.microsoft.com/fwlink/?LinkId=65455上的MSDN文档。 WS元数据交换错误 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:未找到。

+0

强调以下错误字符串:“错误:无法获取元数据”。 – 2010-02-08 15:50:47

回答

0

两个问题:

  1. 匿名身份验证需要启用
  2. WCF模块没有用我的IIS7安装注册

this site,不得不从位置运行ServiceModelReg -i “C:\ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation”。

0

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

+1

我已添加:routes.IgnoreRoute(“Development/SoftwareRequests.svc”);我的global.asax文件,但它没有帮助。 – jessicah 2009-10-27 20:16:57

+0

@汤姆安德森:从逻辑上讲,你的建议应该起作用;但我尝试了与@jessicah相同的东西,但似乎并不奏效。看起来我需要做别的事情。 – 2010-02-08 15:45:57