• 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

  • 相关阅读:
    Apache JMeter 入门教程
    nacos 配置中心 & 服务发现 使用
    Apache Flink能用来做什么?
    使用etcd watch做服务发现
    服务的注册与发现(Consul、zookeeper、etcd、eureka、Nacos)
    四层、七层负载均衡的区别
    Apollo核心概念之“Namespace”
    Charles的原理、作用
    GIN框架中间件 C.NEXT() C.ABORT() C.SET() C.GET 跨中间件取值 GIN中间件中使用GOROUTINE
    gin内置验证器使用
  • 原文地址:https://www.cnblogs.com/peterYong/p/10679275.html
Copyright © 2020-2023  润新知