zoukankan      html  css  js  c++  java
  • 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>

    四、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

  • 相关阅读:
    5 年,只为了一个更好的校验框架
    springboot 中 inputStream 神秘消失之谜
    没啥用的黑科技——自动生成测试对象信息框架
    投资中最简单的事
    一个提升英文单词拼写检测性能 1000 倍的算法?
    基于 junit5 实现 junitperf 源码分析
    关于 junit4 90% 的人都不知道的特性,详解 junitperf 的实现原理
    性能测试到底该怎么做?
    从代码生成说起,带你深入理解 mybatis generator 源码
    java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊!
  • 原文地址:https://www.cnblogs.com/peterYong/p/10679275.html
Copyright © 2011-2022 走看看