0

我在生产环境中遇到标准问题超时异常,即在 90 秒后,线程将被终止。对于我的绝大多数网站来说,这不是问题。

但是,我的站点地图生成器是该规则的一个例外。

因为它依赖于应用程序中创建的路由,所以我选择在项目中创建它,因为它会从应用程序加载所有路由,然后有效地使用自定义的 Html.Action 来生成每个路由。

因为创建整个站点地图需要相当长的时间(最后计数为 5 分钟),所以我在有机会完成之前得到了 YSOD。现在,在 webforms 中,我只需在目录中创建一个 web.config,并使用location 元素为该页面创建一个不错的小处理程序:

<configuration>
  <location path="sitemapgenerator">
    <system.web>
      <httpRuntime executionTimeout="600" /><!-- Ten minutes -->
    </system.web>
  </location>
</configuration>

在没有实际创建此配置文件的情况下,我确信这不仅行不通,而且无论如何这在 MVC 中也是非常糟糕的做法,因为它会将站点地图生成器的命名限制为配置文件中设置的任何内容,并且不仅仅是路线。

如果我需要更改它,我可以确保路由和配置文件保持最新,但这在 MVC 中似乎很混乱。

谁能给我任何建议,以及这个 web.config 方法是否可行?

提前谢谢了。

更新:我已经对此进行了测试,不,它不起作用,所以我也没有后备解决方案。:)

4

1 回答 1

3

您是否尝试过在站点地图生成器的初始化中设置 scriptTimeout 属性?

Server.ScriptTimeout = 600;

于 2009-06-09T14:16:31.963 回答