昨天在写代码中一不小心将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:\windows\system32\inetsrv\w3wp.exe Faulting module path: C:\Windows\system32\KERNELBASE.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>

ASP.NET的一次奇遇:UserControl写成Control引发的w3wp进程崩溃的更多相关文章

  1. [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件

    本文转自:http://www.cnblogs.com/Leo_wl/p/5561812.html ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 . ...

  2. ASP.NET Core 开发-Logging 使用NLog 写日志文件

    ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 .NET Core 和 ASP.NET Core . ASP.NET Core已经内置了日志支持,可以 ...

  3. asp.net尽量不在js里写<%%>

    asp.net尽量不在js里写<%%> eg: <script type="text/javascript"> var rootsid="&quo ...

  4. ASP.NET MVC应用程序把文字写在图片上

    原文:ASP.NET MVC应用程序把文字写在图片上 Insus.NET实现这篇<MVC把随机产生的字符串转换为图片>http://www.cnblogs.com/insus/p/3624 ...

  5. CSS Icon 项目地址 小图标-用css写成的

    http://cssicon.space/#/icon/focus 这是所有用css写成的  小图标  右侧有 html和css代码

  6. HTML 5 背离贪吃蛇 写成了类似于屏幕校准

    中间写了改 改了写 还是没做出自己满意的效果 ,看来自己的确不是一个走前端的料子.当然h5还是学一点好一点 具体说来 就是 在canvas 的画布中 鼠标点击后画上一个圆形 然后就有随机的在画布上面出 ...

  7. Excel日期格式单元格写成yyyy.MM.dd格式将无法读取到DataTable

    最近在改公司的订单系统,遇到了一个奇怪的问题.C#程序需要从Excel文件中将数据全部读取到DataTable,其中Excel文件的第一列是日期格式yyyy/MM/dd,而这一列中大部分的单元格都是按 ...

  8. 使用gfortran将数据写成Grads格式的代码示例

    使用gfortran将数据写成Grads格式的代码示例: !-----'Fortran4Grads.f90' program Fortran4Grads implicit none integer,p ...

  9. 写一个Windows上的守护进程(8)获取进程路径

    写一个Windows上的守护进程(8)获取进程路径 要想守护某个进程,就先得知道这个进程在不在.我们假设要守护的进程只会存在一个实例(这也是绝大部分情形). 我是遍历系统上的所有进程,然后判断他们的路 ...

随机推荐

  1. iOS nib file owner

    nib文件中的file owner属性,设定后app在运行时加载nib文件的过程中会通过file owner重新建立nib文件中描述的控件与其在file owner中对应的IBOutlet或IBAct ...

  2. Web前端之html_day1

    1.html结构 1 2 3 4 5 6 7 8 9 10 <!DOCTYPE html>   <html lang="en"> <head> ...

  3. hivepython 同时读入python 且python脚本中处理外部文件txt

      找出表test_gid2中每个gid的安装列表中含有文件pkgs中的pkg名字的数据行. pkgs文件要与python脚本放在一个路径下. 用 transform 的传入数据的时候,不管原文件分隔 ...

  4. Echarts x轴显示不全

    xAxis : [ { type : 'category', data : ['采矿业','制造业','电力热力燃气及水生产和供应业','建筑业'], axisTick: { alignWithLab ...

  5. 创建solr集群简述

    综述: 用两台服务器,每台服务器上启动两个solr实例(端口分别为8983.7574),即一共有2x2=4个节点.4个节点分散在两个分片上,每台机器上存放两个分片的各一个replica,这样等于每台机 ...

  6. linux磁盘与文件系统的管理

    本文涉及命令:dumpe2fs.df.du.fdisk.mkfs.mke2fs.fsck.badblocks.mount.umount.e2label.tune2fs.hdparm.parted 概念 ...

  7. 爬虫---request+++urllib

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕 ...

  8. iOS开发之AFNetworking 3.0.4使用-OC

      GET请求 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:URL parameters: ...

  9. 咏南WEB开发框架(FOR XE10.1 BERLIN)

    咏南WEB开发框架(FOR XE10.1 BERLIN) 1)支持最新的XE10.1 BERLIN开发WEB程序 2)如同开发VCL WIN32程序一样的速度 3)WEB框架通过咏南中间件和数据库打交 ...

  10. python3中的zip

    在 python2 中zip可以将两个列表并入一个元组列表,如: a = [1,2,3,4] b = [5,6,7,8] c = zip(a,b) 结果:c [(1,5),(2,6),(3,7),(4 ...