• ASP.NET的一次奇遇:UserControl写成Control引发的w3wp进程崩溃


     昨天在写代码中一不小心将UserControl写成了Control,将原来应该继承自System.Web.UI.UserControl的用户控件,比如下面的BlogStats:

    <%@ Control Language="c#" Inherits="CNBlogs.Web.BlogStats" %>
    public class BlogStats : UserControl
    {
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);  
        }
    }

    变成了继承自System.Web.UI.Control:

    public class BlogStats : Control
    {
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);  
        }
    }

    由于UserControl与Control本身就存在着继承关系(UserControl->TemplateControl->Control),所以编译不会有任何错误。

    但是在运行时,访问站点竟然出现503错误。

    Service Unavailable

    HTTP Error 503. The service is unavailable.

    打开IIS管理工具一看,应用程序池自动停止运行了。

    然后打开Windows事件日志,发现了下面的错误日志:

    Faulting application name: w3wp.exe, version: 8.0.9200.16384, time stamp: 0x50108835 Faulting module name: KERNELBASE.dll, version: 6.2.9200.16864, time stamp: 0x531d34d8 Exception code: 0xe0434352 Fault offset: 0x0000000000047b8c Faulting process id: 0xc9c Faulting application start time: 0x01cf985d408fdb6b Faulting application path: c:windowssystem32inetsrvw3wp.exe Faulting module path: C:Windowssystem32KERNELBASE.dll Report Id: 85f21051-0450-11e4-9407-c2c3c27bfd35 Faulting package full name: Faulting package-relative application ID:

    原来是w3wp进程崩溃了。

    实在想不明白,UserControl与Control存着着继承关系,为什么将UserControl写成Control会造成如此严重的后果,难道与ASP.NET用户控件的动态编译机制有关?

    期待有经验的朋友帮忙解惑一下。

    【附】

    BlogStats.ascx的代码:

    <%@ Control Language="c#" Inherits="CNBlogs.Web.BlogStats" %>
    <div class="BlogStats">
        随笔 - <asp:Literal ID="PostCount" runat="server" />, 
        文章 - <asp:Literal ID="StoryCount" runat="server" Visible="True" />, 
        评论 - <asp:Literal ID="CommentCount" runat="server" />, 
        引用 - <asp:Literal ID="PingTrackCount" runat="server" />
    </div>
  • 相关阅读:
    vmware esxi 过期,激活
    mysql 导入csv文件
    定时登录下载sftp服务器上的某些有规则的文件
    修改tmp的临时目录的地址
    jetty权威指南
    将linux下的rm命令改造成mv到指定的目录下
    mysql 5.6 grant授权的时候出现问题
    Keras vs. PyTorch
    Visualizing LSTM Layer with t-sne in Neural Networks
    keras Lambda 层
  • 原文地址:https://www.cnblogs.com/dudu/p/usercontrol_w3wp_crash.html
Copyright © 2020-2023  润新知