我的Dev环境存在问题,任何对缓存应用程序块的CacheFactory的调用都会导致IIS崩溃。我创建了一个非常简单的Web应用程序,每次我尝试运行它时都会导致IIS崩溃,但是在Visual Studio.NET Web服务器下应用程序运行良好。
以下代码导致应用程序在IIS下运行时崩溃:
protected void Page_Load(object sender, EventArgs e)
{
try
{
ICacheManager cm = CacheFactory.GetCacheManager("foo");
Response.Write(cm.GetHashCode());
}
catch(Exception ex)
{
Response.Write(Server.HtmlEncode(ex.ToString()));
}
}
我在这里抓住稻草,但有没有人看到类似的行为?有一段时间我看到“试图读取或写入受保护的内存。这通常表明其他内存已损坏。”错误,但现在我只是崩溃了。在我上面的代码示例中,当我在IIS下运行时从未到达catch,因为w3wp.exe进程刚刚失败。发生这种情况时,我在事件日志中得到以下条目:
为应用程序池提供服务的进程 'WebApplication1'致命 与Windows的通信错误 流程激活服务。该 进程ID是'1944'。数据字段 包含错误号。
我已经尝试重新安装企业库并重新运行aspnet_regiis.exe无济于事。我也尝试删除Web服务器角色并重新安装它,但这也不起作用。
关于我的开发环境的一些注意事项:
修改
我已将此问题缩小到.NET 4.0 Framework问题。当我针对3.5 Framework构建我的Web应用程序时,它按预期工作,但是当我针对4.0 Framework构建时,IIS在运行Web应用程序时崩溃。
答案 0 :(得分:4)