我正在努力使同一个项目与WCF和MVC一起使用。
我的问题是:
MVC工作得很好,比我在WCF服务中包含的接口和.svc。
当我尝试这样的事情时:
http://localhost:2986/PAGENAME.svc
我收到以下错误:
无法找到资源。
注意:PAGENAME.svc位于root(以及接口)。
期待这个问题,我在RegisterRoutes中包含了ignore方法:
routes.IgnoreRoute("{resource}.svc/{*pathInfo}");
routes.IgnoreRoute("{resource}.svc");
但是没有工作= /
有谁知道如何解决这个问题?
谢谢!
答案 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)
));