サイトの一部として多数の Silverlight 3 プロジェクトを使用して、Visual Studio 2008 SP1 で MVC (1.0) アプリとして開始されたアプリケーションがあります。まったく空想的なものはありません。依存性注入に Ninject を使用します (最初のバージョン 2 ベータ版、現在は MVC 拡張機能を備えたバージョン 2 がリリースされています)。
.Net 4.0、VS2010、MVC2 などのリリースに伴い、アプリケーションを最新のプラットフォームに移行することにしました。VS2010 の変換ウィザードは、1 つの例外を除いてすべてを処理したようです。mvc1 への参照が mvc2 を指すように変更されなかったため、手動で行う必要がありました。もちろん、これにより、アプリから欠落している可能性のある他のMVC2のことについて考えさせられます.File-> New Projectを実行するとそこにあるでしょう...しかし、それはこの質問の焦点ではありません。
このアプリケーションを IIS 7.5 サーバー (Win2008 R2 x64 で実行) に展開すると、アプリケーション自体が機能します。ただし、画像、スクリプト、およびその他の静的コンテンツは存在しないようです。もちろん、それらはサーバーのディスク上にありますが、クライアントの Web ブラウザーには表示されません。
私は IIS にまったく慣れていないので、サーバー上のブラウザーで Web ページを開こうとすることだけを知っていました。そしてここで、ついに敵と対峙します。画像の 1 つの URL (たとえば、http://server/Content/someimage.jpg )に直接アクセスしようとすると、ブラウザーに次のエラーが表示されます。
IControllerFactory 'Ninject.Web.Mvc.NinjectControllerFactory' は、'Content' という名前のコントローラーのコントローラーを返しませんでした。
あはは。Web サーバーはこのリクエストを MVC にフィードしようとしますが、MVC はデフォルトのルーティング設定でコンテンツをコントローラーと見なし、失敗します。
Content/ および Scripts/ (特に) を非コントローラーとして扱い、静的コンテンツを通過させるにはどうすればよいですか? もちろん、これは私の開発者マシンの Cassini で動作しますが、展開するとすぐにこの問題が発生します。
IoC ツールが不足しているコントローラーをベース コントローラー ファクトリに渡す必要がある Ninject MVC 2 の最新バージョンを使用していますが、これは明らかに役に立ちませんでした。コンテンツなどの無視ルートも追加しようとしましたが、これも明らかに効果がありません。適切なレベルで問題に取り組んでいるかどうかさえわかりません。
このアプリを起動するためにどこを見ればよいか知っている人はいますか? 私は Web サーバーを完全に制御できるので、Web サーバーが機能し始める限り、多かれ少なかれ好きなことを行うことができます。
ありがとう!