我收到用户的报告,他们在访问我的网站时收到以下错误消息:
HTTP/1.1 新会话失败
这种事不会经常发生。(我今天随机检查了我的网站大约 20 次,只看到过一次。)
我的网站是用 ASP 构建的。它实际上是简单的 HTML,但我使用 ASP 是因为我将 HTML 分成了 5-6 个文件,并使用 #include(我使用的唯一 ASP 命令)动态合并这些文件。我这样做是因为我的页面的几个区域是静态的(例如“新闻”部分在我的网站的每个页面上都是相同的,我将其保存在单独的文件中,以便轻松地为整个网站更新一次)。
我的网站托管在 Windows IIS 环境中。由于我使用的是托管公司,因此无法访问 IIS,我通过 web.config 配置所有内容。
我在 web.config 中添加了以下内容:
<system.web>
<sessionState mode="Off" />
</system.web>
...我认为这会阻止使用会话。就像我之前说的,我的网站都是简单的 HTML,因此不需要会话。然而,这并没有帮助,添加这部分后我确实看到了错误。
我假设我遇到错误是因为内存问题。如果我只使用 ASP 的 #include 命令,我该如何简化我的网站,以便不再出现错误?我是否应该包含一些 web.config 部分,以便 IIS 更好地管理内存?
编辑:我刚刚询问了服务器公司是否可以为我的实例添加内存,他们解释说,因为我使用的是共享服务器,所以这是不可能的。他们确实为我提供了一个更昂贵的计划,但对于我这个几乎没有流量的简单网站来说,这似乎太荒谬了。
我的 web.config 很长,因此如果您需要查看它的特定部分以帮助调试问题,请告诉我,我会发布它。
现在,我使用的托管公司的技术人员毫无用处。他们建议诸如“打开您的网站时我没有看到错误。尝试使用 Firefox 浏览器而不是 Chrome...看看是否有帮助。”呃。我不确定更改最终用户的浏览器如何解决服务器问题...无论如何...
如果我无法解决这个问题,我考虑做以下事情:
- 将所有页面都改为使用 PHP 而不是 ASP,看看 PHP 是否运行得更好。我最初选择 ASP 是因为我认为它是一种古老的技术,目前还比较稳定。
- 最后的办法:将我的所有页面都转换为 HTML,并在某个静态区域发生变化时使用离线程序来生成它们。(新闻部分通常每月更新一次,因此这实际上并不是一个糟糕的解决方案——但说真的,这不就是 ASP 的用途吗?!)
编辑:我已将网站主页切换为 PHP,并将在接下来的几天内密切关注网站,看看是否还会遇到更多错误。让我们看看 PHP 是否比 ASP 更稳定。注意:我确实遇到了这个错误将我的主页转换为 PHP 时,我将包含的文件转换为纯 UTF-8 编码(没有 BOM,不管它是什么......)并且它似乎正在工作。
编辑编辑:我一天检查了网站二十多次,一次都没有发现错误。我将继续监控几天,如果一切顺利,我将把网站的其余部分从 ASP 转换为 PHP。
答案1
我始终没有找到解决 ASP 问题的方法。因此,我将所有页面从 ASP 转换为 PHP,并且没有看到任何错误。我并不高兴,但问题解决了。
希望这个对你有帮助。