MVC2
非 MVC 部分 (通常の Asp.Net 3.5 ページ) も含むアプリがあります。
オートコンプリートを設定するために、MVC 以外のページから Web サービス (WCF ではない) を呼び出しています。
私の開発者マシンでは、MVC パーツと非 MVC パーツの両方が正常に動作します。
IIS でアプリケーションをホストすると、Web サービスの Web メソッドにアクセスできません。私はそれが返されるfirebugでチェックしました
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>
まだ運がありません。