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

3
我正在尝试将WCF服务添加到现有的ASP.NET MVC Web应用程序中,但是在使用WCF Test Client应用程序时,我不断收到指向.svc文件的URL的HTTP 404错误。
当我向项目中添加新的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)通信基础结构服务,请检查您是否已在指定地址上启用了元数据发布。有关启用元数据发布的帮助,请参阅MSDN文档http://go.microsoft.com/fwlink/?LinkId=65455。 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:未找到。

强调以下错误字符串:“错误:无法获取元数据”。 - Jim G.
2个回答

0
在全局文件中(配置全局路由的地方)一定要添加一个针对 svc 文件的特定忽略项。

1
我已经在我的global.asax文件中添加了:routes.IgnoreRoute("Development/SoftwareRequests.svc");,但它没有起作用。 - jessicah
@Tom Anderson:从逻辑上讲,你的建议应该是可行的;但我尝试了@jessicah做的同样的事情,似乎没有起作用。看来我需要做些其他的事情。 - Jim G.

0

两个问题:

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

此站点,必须从位置“C:\ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation”运行ServiceModelReg -i。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接