2009-06-04 61 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

你在你的應用程序中設置任何其他途徑? – 2009-06-04 09:01:52

+0

我還有一個也添加了頁面參數,所以{控制器}/{動作}/{編號}/{頁面} – Chris 2009-06-04 09:30:52

回答

0

有一件事你應該看看在你的網站上你的web.config文件。堆棧跟蹤的頂部;

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

看起來是一個調用來確定web.config的位置。這可能是由您的路由(/Project/client/id)定義的虛擬文件系統與可能存在的web.config衝突,例如,~/Project/web.config

這是從堆棧跟蹤派生出來的一個狂野刺,但應該花太長的時間來看看這可能是一個問題。

0

如果其他人在此頁面上顯示並且未找到他們正在查找的解決方案,則URL中不允許使用某些字符串。閱讀在這裏:

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

的解決方案是另一個微軟的「WorkProperly」標誌(其默認值是「假」)

相關問題