3

ASP.NET MVC3 アプリケーションで AJAX 対応の Web サービスを使用しており、いくつかのクラスをそれらに挿入したいと考えています。したがって、NInject.Wcf をインストールし、ファクトリを に設定し Ninject.Extensions.Wcf.NinjectServiceHostFactory、次のステップは からアプリケーション クラス ( MVCApplicationGlobal.asax 内) を派生させることですNinjectWcfApplicationが、これを行うと、IIS はアプリケーションの実行を停止し、リクエストをルーティングするのではなく、StaticFile モジュールを使用しようとします。コントローラ。

これを修正する方法、または他の方法で WCF を使用して NInject を実装する方法は?

4

1 に答える 1

2

ルートが正しく設定されていない理由は、ASP.NET MVC アプリケーションのデフォルトの Global.asax テンプレートが原因で、デフォルトで定義されているためです。

void Application_Start() { ... }

HttpApplication にはこのメソッドが定義されていないため、IIS は起動時にこのメソッドを呼び出します。そのため、Application_Start メソッドがNinjectWcfApplication定義されているものから派生させる場合、デフォルトのメソッドを次のように変更する必要があります。

protected override void Application_Start(object sender, EventArgs e)
{
    .....
    base.Application_Start(sender, e);
}

これを行わないと、メソッドNinjectWcfApplication.Application_Startの代わりにIIS が呼び出します。Application_Start

于 2012-03-11T14:40:00.160 に答える