支持ASP.NET MVC中的WCF

时间:2013-12-18 17:14:01

标签: c# asp.net-mvc wcf

我正在努力使同一个项目与WCF和MVC一起使用。

我的问题是:

MVC工作得很好,比我在WCF服务中包含的接口和.svc。

当我尝试这样的事情时:

http://localhost:2986/PAGENAME.svc

我收到以下错误:

无法找到资源。

注意:PAGENAME.svc位于root(以及接口)。

期待这个问题,我在RegisterRoutes中包含了ignore方法:

routes.IgnoreRoute("{resource}.svc/{*pathInfo}");
routes.IgnoreRoute("{resource}.svc");

但是没有工作= /

有谁知道如何解决这个问题?

谢谢!

2 个答案:

答案 0 :(得分:2)

您需要确保拥有所需的所有文件,这些文件是从服务主机(.svc文件)引用的,即:

<@% ServiceHost Service="..."/>

服务指定服务实现的位置。 服务契约(服务实现实现的接口)通常在web.config中配置。

如果服务主机文件位于解决方案的根目录,则无需忽略该路由。

您需要引用System.ServiceModel。

如果您想测试您的服务,可以打开visual studio命令提示符并运行wcftestclient,File - &gt;添加服务并为您的服务添加网址,例如:

http://locahost:12423/MyService.svc

答案 1 :(得分:2)

我玩过这个已经有一段时间了,但我认为在使用MVC时你需要注册一个service route ...但我不记得那是我拥有的要做或者如果我只是想做那个更清洁的路线。

要使用服务路径添加服务,您可以执行以下操作

routes.Add("MyService", new ServiceRoute(
    "some/path",
    new ServiceHostFactory(),
    typeof(MyService)
));