【知識筆記】ASP.NET報錯問題
一、前端asp.net在遠程部署到IIS時報錯:Web 部署任務失敗,在遠程計算機上處理請求時出錯
服務器在處理請求時遇到問題。請與服務器管理員聯系以了解詳細信息((2017/6/16 16:22:41)。
原因:遠程部署的文件夾的權限沒有設置
需要在文件夾 屬性-》安全,添加local service權限
二、用戶代碼未處理InsufficientExecutionStackException
“System.InsufficientExecutionStackException”類型的異常在 System.Web.dll 中發生,但未在用戶代碼中進行處理
其他信息: 堆棧空間不足,無法繼續安全地執行程序。調用堆棧上的函數過多或堆棧上的函數使用過多的堆棧空間時,會發生這種情況。
原因:Html.RenderAction("PartailViewTable"); /*加載部分視圖*/
改為
Html.RenderPartial("PartailViewTable");
Html.RenderAction是通過Controller中的Action來調用MVC用戶控件
在MVC 2.0中,新增加了Html.RenderAction();這個方法與RenderPartial有點不一樣,他是直接重新執行一次Controller → Model → View的順序,然後把產生的頁面帶回到原來的View中再回傳。
兩者的不同點
- RenderPatial的數據來自於調用的View,而RenderAction來自自己。
- RenderAction會發起一個新的Request,而RenderPatial不會。
對於RenderAction會發起一個新的Request,感覺對調用頁面的流程有點破壞。
一個View在顯示的時候,自己又發起一個 Request去獲取數據來顯示,顯然有點破壞了作為一個View的原則:A View should only know how to render, but not what to render!
三、上下文不存在名稱“scripts”
@Scripts.Render("~/Scripts/jquery-1.10.2.min.js")
是因為缺少命名空間
@using System.Web.Optimization
@Scripts.Render("~/Scripts/jquery-1.10.2.min.js")
當然為了通用性,最佳的實踐是在Views文件夾的web.config中添加System.Web.Optimization名稱空間的引用,如下所示:
<namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> <add namespace="Bootstrap.Web" /> <add namespace="System.Web.Optimization" /> </namespaces>
【知識筆記】ASP.NET報錯問題