1. 程式人生 > >【知識筆記】ASP.NET報錯問題

【知識筆記】ASP.NET報錯問題

安全 取數據 任務 except 失敗 bubuko 異常 ali name

一、前端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中再回傳。

技術分享圖片 技術分享圖片

兩者的不同點

  1. RenderPatial的數據來自於調用的View,而RenderAction來自自己。
  2. 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報錯問題