我有一个MVC2
应用程序,其中还包括一个非 MVC 部分(常规 Asp.Net 3.5 页面)。
我从非 MVC 页面调用 web 服务(不是 WCF)来填充自动完成。
MVC 部分和非 MVC 部分在我的开发人员机器上都可以正常工作。
当我在 IIS 中托管我的应用程序时,我无法访问我的网络服务中的网络方法。我检查了它返回的萤火虫
The controller for path '/payroll/WS/MVCArch.asmx/JqUiGetEmp' was not found or does not implement IController. '
这里我的虚拟目录名称是 Payroll。我的非 MVC 页面位于应用程序根目录下名为“RepDocs”的文件夹下。我的 Webservice 文件夹“WS”也在应用程序的根目录下。该请求是从“RepDocs”文件夹下的非 mvc 页面发送的。
为什么相同的代码适用于VSHOST
而不适用于IIS (XP sp3)
?我错过了什么吗?
请帮忙。
编辑
我已修改我的 global.asax 以排除以下路线
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.IgnoreRoute("WS/{resource}.asmx/{*pathInfo}");
//routes.IgnoreRoute("{*allasmx}", new { allasmx = @".*\.asmx(/.*)?" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
现在我得到这个错误
The HTTP verb POST used to access path '/Payroll/ws/MVCArch.asmx/JqUiGetOffice' is not allowed.
我将以下内容添加到 Web.config
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
仍然没有运气。