【知识笔记】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中再回传。

        

两者的不同点

  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>

猜你喜欢

转载自www.cnblogs.com/peterYong/p/10679275.html