要向人们表明IIS Applicationpool上的ASP.Net应用程序已停止维护而不是出现合法错误,我需要将所有调用该应用程序一部分的人(也包括书签)重定向到通用维护页面。
首先,我尝试了在应用程序根目录中使用App_Offline的途径。无济于事(IIS处于关闭状态,因此该站点无法运行)。然后出于相同的原因,我尝试了无效的http重定向。
答案 0 :(得分:0)
您不需要停止应用程序池。 app_offline.htm的存在将关闭您的应用程序。有关其工作原理的更多详细信息,here。
但是,这不会阻止IIS提供静态HTML文件。如果您将静态HTML文件作为应用程序的一部分,那么您将不得不重定向其他方式。您可以使用维护页面在IIS中创建其他站点。然后,删除工作站点的绑定,并在工作时将其添加到维护站点。然后将其移回。
答案 1 :(得分:0)
如果停止网站,则意味着该网站不再侦听其所有绑定上的请求。这样可以防止您的应用程序在网站上收到任何后续请求。与您的网站的新连接将失败,就好像它不存在一样。
因此,首先启动应用程序池并创建一个用于重定向所有页面的临时页面。
下面是URL重写规则,该规则将所有页面重定向到正在建设中的页面。
<rule name="RequestBlockingRule1" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{URL}" pattern=".*" />
<add input="{REQUEST_URI}" pattern="temp.html" negate="true" />
</conditions>
<action type="Redirect" url="temp.html" />
</rule>
如果要重定向到另一个站点,可以在操作URL值中设置另一个站点url。