asp.net - 读取 cookie 时 IIS7 应用程序池崩溃

标签 asp.net iis-7.5 application-pool

这是一个真正的挑战: 我的电脑安装了IIS7.5,开始开发网站。每天晚上我都会在我的网络服务器上备份它,win 2008r2 sp1(所有更新)。它运行完美。

但是,在跨应用程序池共享 cookie 时,我遇到了一个巨大的问题。 www.example.com 设置为 127.0.0.1,以便我可以在本地测试该网站。它创建了 cookie,但是当我删除 HOSTS 记录(指向 Web 服务器)时,Web 服务器上的应用程序池崩溃了。它每次都会发生,并且可能必须对 sessionID cookie 执行某些操作,因为没有 cookie 它不会崩溃!

日志文件是:

Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7afa2
Faulting module name: nlssorting.dll, version: 4.0.30319.239, time stamp: 0x4e182039
Exception code: 0xc00000fd
Fault offset: 0x0000000000001d7d
Faulting process id: 0x9f8
Faulting application start time: 0x01ccbbd76b7a443c
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\nlssorting.dll
Report Id: a9cfd0cf-27ca-11e1-bced-00215e5304da

这是怎么回事?

最佳答案

ASP.NET auth cookie 使用 web.config 中的 machineKey 设置进行加密和解密。如果您没有它,它会在每次应用程序启动时自动生成。最好将其设置为固定值,以避免应用程序重新启动之间 cookie 失效。

我不能确定,但​​可能 asp.net session cookie 也依赖于这个加密 key 。我很确定 viewstate 也在使用它(这就是为什么当您在应用程序因不活动而关闭后启动回发时,您会看到无效的 viewstate 错误)。

所以,尝试设置机器 key ,看看它仍然发生。您可以使用 IIS 生成一个,它会将其插入到 web.config 中的正确位置。

关于asp.net - 读取 cookie 时 IIS7 应用程序池崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8535289/

相关文章:

sharepoint - 如果我想在 Sharepoint 2010 中使用 SPSiteCollection.Add,为什么我会在某些应用程序池标识中收到 UnauthorizedAccessException?

c# - 数据表还是 IList?哪个更好?

javascript - 从 ASP.NET View 调用 C# 函数

iis-7.5 - 如何保护托管在 IIS 7.5 上的面向公众的 WCF 服务?

c# - 如何使用 .NET ApplicationPool 类更改应用程序池的用户名和密码?

c# - 创建使用 .NET 4.0 的应用程序池

c# - 命名空间问题

c# - Gridview 中的超链接字段(Url 导航)

php - 在 windows-7 iis-7.5 上设置 smtp

powershell - 使用 Powershell 所需配置状态的应用程序池高级设置