我有一個MVC2
應用程序,其中還包括一個非MVC部分(常規Asp.Net 3.5頁)。從Asp.net MVC訪問Webservice
我從非MVC頁面調用Web服務(不是WCF)來填充自動填充。
MVC部件和非MVC部件在我的開發人員機器中都能正常工作。
當我在IIS中託管我的應用程序時,我無法訪問我的web服務中的webmethods。我檢查了螢火蟲它返回
The controller for path '/payroll/WS/MVCArch.asmx/JqUiGetEmp' was not found or does not implement IController. '
在這裏我的虛擬目錄名稱是薪資。而我的非MVC頁面位於應用程序根目錄下名爲「RepDocs」的文件夾下。我的Web服務文件夾「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>
仍然沒有運氣。
你的路徑可能是錯誤的部署。請參閱http://blogs.msdn.com/b/rickandy/archive/2011/04/22/test-you-asp-net-mvc-or-webforms-application-on-iis-7-in-30-seconds .aspx - – RickAndMSFT 2012-07-20 15:20:16
我檢查了路徑,並且wsdl正確返回,這意味着我的服務已啓動並正在運行。頁面呈現太正確。唯一不起作用的是對我服務的ajax請求。不知何故,請求結束與控制器不應該是因爲請求來自非mvc頁面。 – Deb 2012-07-20 15:30:27