[解決済み] Home'という名前のコントローラに一致するタイプが複数見つかりました。
質問
現在、2つの無関係なMVC3プロジェクトがオンラインでホストされています。
1つは問題なく動作しますが、もう1つは動作せず、エラーが発生します。
Home' という名前のコントローラに一致する型が複数見つかりました。これは このリクエストを処理するルートは、次のような場合に発生する可能性があります。 ('{controller}/{action}/{id}') は、検索するための名前空間を指定しません。 を使用することで、リクエストに一致するコントローラを見つけることができます。
このような場合 MapRoute' メソッドのオーバーロードを呼び出して、このルートを登録します。 は 'namespaces' パラメータを受け取ります。
私のホスティング会社は、私にFTPアクセス権を与え、そのフォルダーの中に、私のアプリケーションごとに2つの別のフォルダーを持つという仕組みになっています。
<ブロッククオートftpFolderA2/foo.com
ftpFolderA2/bar.com
foo.comは問題なく動作します。私は自分のアプリケーションをローカルのファイルシステムに公開し、コンテンツをFTPで送信して動作します。
bar.comをアップロードして実行しようとすると、上記の問題が発生し、私のサイトを使用することができなくなります。 foo.comが動作している間、すべて .
bar.comは、ftpFolderA2内のあらゆる場所のコントローラから検索し、その結果、別の
HomeController
? どうすればControllerフォルダ内だけを見るようにできますか?
事実です。
- エリアを使用しない これらは全く関係のない2つのプロジェクトです。公開されたプロジェクトは、それぞれのフォルダに配置しています。何も派手なことはしていません。
- 各プロジェクトには、1つのHomeControllerしかありません。
どなたか、これが問題であることを確認できますか?
解決方法は?
このエラーメッセージは、エリアを使っていて、かつ 同じコントローラ の名前は、エリアとルートの内部で使用されます。たとえば、次の2つがあります。
-
~/Controllers/HomeController.cs
-
~/Areas/Admin/Controllers/HomeController.cs
この問題を解決するために(エラーメッセージが示唆しているように)、ルートを宣言するときに名前空間を使用することができます。ですから、メインのルート定義で
Global.asax
:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "AppName.Controllers" }
);
で、あなたの
~/Areas/Admin/AdminAreaRegistration.cs
:
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new[] { "AppName.Areas.Admin.Controllers" }
);
領域を使用しない場合、両方のアプリケーションが同じASP.NETアプリケーション内でホストされており、同じコントローラを異なるネームスペースで定義しているために競合が発生していると思われます。このような競合を避けるには、2つのアプリケーションを別々のASP.NETアプリケーションとしてホストするようにIISを設定する必要があります。サーバーにアクセスできない場合は、ホスティングプロバイダーに依頼してください。
関連
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】C#で四捨五入する方法
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】画像のペイントにTextureBrushを使用する方法