添加一个MVC 项目 在里面添加一个 Webservice 然后去浏览 这个Webservice1.asmx ,然后 点击默认的 Hello Word 方法,点 “调用”。
无法找到资源。
知道问题一定在 路由上,因为找不到这个路由。在MVC 中请求都会找路由表,然后按路由匹配,由于找不到对应的路由所以报 "无法找到资源”。
然后我在路由规则里加上:constraints: new { controller = @"^(?!webservic)\w*$" }// 我理解是表示controller 不匹配webservice 开头的.然后再去调用 发现好了。
但这时候正常的MVC 路由页面有问题了 。估计是 对上面代码 的理解有误,希望高手说明下上面那个约束什么作用。
找了一会资料终于解决了
在 路由设置前 加上 routes.Ignore("{*allasmx}", new { allasmx = @".*\.asmx(/.*)?" }); 表示 对 .asmx 文件的请求忽略 也就是不走路由。WCF 就要加上
routes.Ignore("{*allsvc}", new { allsvc = @".*\.svc(/.*)?" });
时间: 2024-10-10 17:50:45