3

ASP.NET、Visual Studio 2010、Windows 8、IIS 8。

我有一个 ASP.NET 站点,它是从客户端的源代码管理中提取的。它在 Visual Studio 开发服务器下运行良好,但当它不在 IIS 下运行时,有些事情无法正常工作。

当我将它设置为在 IIS 中运行时,由于 IIS_IUSRS 没有读取 web.config 的权限,它最初给了我一个 500 错误。

我解决了这个问题,现在它开始了,但是如果我浏览到该站点,浏览器就会无限期地坐在那里说“正在连接”——它甚至不会超时。

如果我尝试从 VS 启动它,它会执行类似的操作,除非一段时间后超时并说它无法附加调试器。我在这里和其他地方阅读了有关“无法附加调试器”消息的各种帖子,它们要么不适用于我,要么建议的解决方案没有任何区别。

我检查了正常的 IIS 日志,启用了失败的请求跟踪并检查了这些 - 什么都没有,它似乎甚至没有那么远。我已经尝试更改应用程序池设置等,但这没有任何区别。

任何人都可以建议我可以尝试的其他任何事情来弄清楚这里发生了什么吗?

4

1 回答 1

3

我承认您已经说过您已尝试更改应用程序池设置。但是,您没有说您尝试了哪些设置。

每当我设置 IIS 站点时,我通常会触及以下内容:

  • .NET 框架版本
  • 启用 32 位应用程序(我经常使用仅 32 位的托管 dll)
  • 托管管道模式
  • 身份

在 IIS 下仔细检查/播放这些设置的值。

另一件值得检查的是 web.config 中的 sessionState 元素。根据我的经验,错误配置的 sessionState 会导致 google-able 错误,但对我来说,会话​​持久性可能会发生一些事情并没有完全持久化到您的网站中是合理的。

还要考虑你的冒名顶替。再说一遍:根据我的经验,不正确的模仿会很快出错。但是,如果您使用的是域帐户,那么这可能无法解决并导致您的应用程序池挂起似乎是合理的。

您如何部署到 IIS?您是将源代码转储到 IIS 中,还是在编译和发布 Web 应用程序?无论您要尝试两者中的哪一个,都可以考虑尝试另一个。

您是在构建 Web 应用程序的发布版本还是调试版本?无论您尝试哪个错误,请尝试另一个,看看是否有效。

请注意此处的安全性:测试为您的应用程序池提供管理员身份。从长远来看,这是一个糟糕的解决方案,但是如果您的网站在管理员帐户下运行时可以正常工作,那么这会将您的问题范围缩小到与权限相关的范围。

鉴于目前提供的信息,这就是我能想到的尝试。你能想到其他可能相关的事情吗?

于 2013-07-25T03:57:50.227 回答