• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET使用中一些报错问题

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、前端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>

 

四、w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法

参考:w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法

 

五、MVC的cshtml中空引用

报错我们一般会去看错误日志,都会显示错误在哪一行。

而在cshtml 中行数并不准确,这时就需要看下 报错的后面一些行是否有对象为null。

六、Response.End()报ThreadAbortException: Thread was being aborted

在程序中做了导出订单的功能,

   resp.Write("</table>");
   resp.Flush();
   resp.End();
        }
   catch (ThreadAbortException ex) //主要是这里
    {
                Helper.WriteErrorLog( "Offline.Site", "订单导出Abort异常",ex.Message);
                throw;
            }
            catch (Exception ex)
            {
                Helper.WriteErrorLog(
                           "Offline.Site",
                           "订单导出异常",
                           ex.Message
                           );
            }
View Code

原来查到Response.End(); 就是停止页的执行。
End()只是简单的终止当前线程,而其他线程继续运行不受影响。如果不捕获ThreadAbortException,就不会抛出异常

于是改为 ThreadAbortException内不做任何处理。或者不捕获 ThreadAbortException。

更多参考官网:HttpResponse.End Method

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap