2009-06-04 5 views
2

MVCサイトで奇妙なエラーが発生しています。私のコントローラには、{controller}/{action}/{id}のデフォルトルート(私の場合は/ Project/Client/{id})に応答するアクションがあります。ASP.NET MVCアクションは特定のパラメータで404を指定しますか?

私が渡したIDによっては、エラーが発生します。 Elmahをオフにすると、まっすぐなASP.NET 404エラーです。 Elmahをオンにすると、次のようになります。

System.Web.HttpException 
    at System.Web.CachedPathData.GetConfigPathData(String configPath) 
    at System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath, Boolean permitPathsOutsideApp) 
    at System.Web.HttpContext.GetFilePathData() 
    at System.Web.HttpContext.GetConfigurationPathData() 
    at System.Web.Configuration.RuntimeConfig.GetConfig(HttpContext context) 
    at System.Web.HttpContext.get_ImpersonationToken() 
    at System.Web.ClientImpersonationContext.Start(HttpContext context, Boolean throwOnError) 
    at System.Web.HttpApplication.ThreadContext.SetImpersonationContext() 
    at System.Web.HttpApplication.ThreadContext.Enter(Boolean setImpersonationContext) 
    at System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext) 
    at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error) 

これは特定のIDパラメータでのみ発生します。例

/Projects/Client/ABC -- works 
/Projects/Client/DEF -- works 
/Projects/Client/GHI -- 404 
/Projects/Client/JKL -- works 

のように...のための

どれ手がかりは?

+0

アプリケーションで設定し、他のルートを持っていますか? –

+0

私はページのパラメータも追加していますので、{controller}/{action}/{id}/{page} – Chris

+0

"GHI"の例のユニットテストはありますか?これは、実際にルーティングの問題があり、コントローラのロジックに問題がないことを確認するのに役立ちます。 –

答えて

1

あなたはここで読む と呼ばれているどのルートを学習するためにフィルHaacksルートデバッガを使用することができます:あなたが見なければならない http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx

+0

これはどんな問題も明らかにしませんでしたが、別のプロジェクトの問題を解決した素晴らしいツールを紹介してくれました。 – Chris

0

一つのことは、あなたのサイトであなたのweb.configファイルです。スタックトレースの先頭。

at System.Web.CachedPathData.GetConfigPathData(String configPath) 

web.configの場所を特定するための呼び出しになります。あなたのルート(/Project/client/id)によって定義されている仮想ファイルシステムが、例えば、~/Project/web.configに存在するweb.configと競合している可能性があります。スタックトレースから派生したややこしいそれが問題かどうかを知るには時間がかかりすぎる。

0

誰かがこのページに表示され、探している解決策が見つからない場合、特定の文字列はURLに使用できません。ここではそれについて読む:

Weird 404 error in ASP.NET MVC when including "con"

ソリューションは、Microsoftの「WorkProperly」フラグの別の(そのデフォルト値は「偽」である)である

関連する問題