缓存应用程序块崩溃IIS

时间:2011-03-03 22:22:53

标签: .net asp.net iis-7.5 caching-application-block

我的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服务器角色并重新安装它,但这也不起作用。

关于我的开发环境的一些注意事项:

  • 在VirtualBox 4.0.4下的Windows Server 2008 R2 x64网络版上运行VS.NET 2010 SP1 Beta
  • 使用Enterprise Library 5.0
  • 直到最近,这台开发服务器上的所有内容都运行正常。
  • 此时,已使用bcdedit.exe
  • 关闭了数据执行保护

修改

我已将此问题缩小到.NET 4.0 Framework问题。当我针对3.5 Framework构建我的Web应用程序时,它按预期工作,但是当我针对4.0 Framework构建时,IIS在运行Web应用程序时崩溃。

1 个答案:

答案 0 :(得分:4)