2011-03-03 145 views
3

使用asp.net Mvc3 RTM,IIS7。奇怪的asp.net mvc錯誤

我越來越充斥着這樣的一個錯誤:

System.Web.HttpException 公共行動方法「應用程序」並沒有對控制器「Interreg.Web.Controllers.ApplicationsController」找到。
System.Web.HttpException(0x80004005):控制器'Interreg.Web.Controllers.ApplicationsController'上沒有找到公共操作方法'Application'。
在System.Web.Mvc.Controller.HandleUnknownAction(字符串actionName)
在System.Web.Mvc.Controller.ExecuteCore()
在System.Web.Mvc.ControllerBase.Execute(RequestContext的RequestContext的)
在系統.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)
at System.Web.Mvc.MvcHandler。 <> c_ DisplayClass6。 <> c _DisplayClassb.b_ 5()
at System.Web.Mvc.Async.AsyncResultWrapper。 <>Ç
_DisplayClass1.b_ 0()
在System.Web.Mvc.Async.AsyncResultWrapper> Ç
_DisplayClass8'1.BeginSynchronous> b__7(IAsyncResult的
在System.Web.Mvc.Async.AsyncResultWrapper .WrappedAsyncResult`1.End()
at System.Web.Mvc.MvcHandler。 <>Ç
_DisplayClasse.b_ d()
在System.Web.Mvc.SecurityUtil.b
_0(動作F)
在System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(動作動作)
在系統。 Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult的asyncResult)
在System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult的結果)
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication。 IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean & completedSynchronously)

控制器和操作的變化,他們當然確實存在,應用程序不會崩潰 - 用戶不會看到死亡的黃色屏幕。

我懷疑它與靜態資源加載(圖像,腳本),可能路由有關。

任何想法有什麼不對,什麼會導致這種情況?

+2

請問這個問題無助於?: http://stackoverflow.com/questions/1745182/intermittent-asp-net-mvc-exception-a-public-action-method-abc-could -not-be-foun – amurra

+0

@amurra看起來很有前景 –

回答

0

這可能是你說的。我建議檢查IIS日誌以查詢/ Application以查看該URL在哪裏以及它的名稱。

另一種選擇是在調試模式下導航,在這種情況下,異常應該暫停Visual Studio中的執行。

祝你好運!

0
  1. 驗證請求的類型。(GET或POST)
  2. [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]屬性在上面的方法
  3. 如果應用程序方法返回Json結果添加JsonRequestBehavior.AllowGet行爲返回Json。 如:return Json(zeroResult, JsonRequestBehavior.AllowGet);