2009-03-18 1 views
0

(StructMapを使用して)CommonServiceLocatorを使用するカスタムコントローラファクトリを使用するようにASP.NET MVC RC2アプリケーションをセットアップしました。コントローラのルーティングとインスタンス化は正常に動作しますが、何らかの理由で.js、.jpg、またはその他の静的ファイルにアクセスしようとすると例外が発生します。CommonServiceLocator ControllerFactoryを使用したjs、imgファイルによるコントローラ/ルーティングエラー

ここControllerFactoryコードです:

public class CommonServiceLocatorControllerFactory : DefaultControllerFactory 
{ 
    protected override IController GetControllerInstance(Type controllerType) 
    { 
     return (controllerType == null) ? 
      base.GetControllerInstance(controllerType) : 
      ServiceLocator.Current.GetInstance(controllerType) as IController; 
    } 
} 

と例外がある:

パス用のコントローラ「/someimage.jpg」が見つかりませんでしたか、それはIControllerを実装していません。

コントローラファクトリをバイパスするには、工場エンジンまたはルーティングエンジンを入手するにはどうすればよいですか?

注:IIS7 /統合モードを使用しますが、VS2K8の組み込みWebサーバーでエラーが発生します。

答えて

0

これはControllerFactoryと何か関係があります。私はDefaultControllerFactory.GetControllerInstanceのソースコードを見てきましたが、このオーバーライドによって記述されているエラーが発生する可能性はありません。おそらくあなたのルートを設定した方法によるものです。あなたのルーティング設定を見て、単体テストを書いてください。まだ問題を解決できない場合は、ここにルートを投稿してください。

+0

新しいプロジェクトで提供されているデフォルトルートを使用しています。 – mhamrah

1

問題は実際には404エラーが原因でした。静的コンテンツを要求していたパスが存在せず、配信するものがなかったため、ベースコントローラファクトリで要求を処理できませんでした。

+0

Favicon誰でも:) – bzarah

関連する問題