使用 IIS ApplicationInitialization remapManagedRequestsTo 功能时返回用于服务静态 html 的自定义响应代码?
Returning a custom response code for for serving static html when using IIS ApplicationInitialization remapManagedRequestsTo feature?
我目前正在使用 IIS 的 ApplicationInitialization 功能预热我的 ASP.NET 应用程序。我已将属性 remapManagedRequestsTo 设置为 "warmup.html".
<applicationInitialization remapManagedRequestsTo="warmup.html" skipManagedModules="true" doAppInitAfterRestart="true" >
<add initializationPage="/home" />
<add initializationPage="/about-us" />
</applicationInitialization>
它运行良好,但我想在 return 将 Warmup.html 的内容 return 发送到浏览器时 return 自定义状态代码。这样一来,当我 运行 部署后进行一些冒烟测试时,我就会知道预热何时完成。
我尝试使用 URL Rewrite 将状态代码从 200 更改为 555 以提供服务 warmup.html 它确实改变了状态代码但是不提供 warmup.html
中的内容
<rewrite>
<rules>
<rule name="Change warm up status code" stopProcessing="true">
<match url="warmup.html" />
<action type="CustomResponse" statusCode="555" subStatusCode="0"/>
</rule>
</rules>
</rewrite>
有什么方法可以同时提供 warmup.html 的内容 AND return 555?
的自定义状态代码
终于在 Morten Bock
写的博客 post 中找到了我的答案
原来我必须删除 remapManagedRequestsTo 和 skipManagedModules 这两个属性(默认值为 false),这让我们得到
<applicationInitialization doAppInitAfterRestart="true">
<add initializationPage="/home" />
<add initializationPage="/about-us" />
</applicationInitialization>
然后让 URL 重写模块接管,但我们希望在应用程序初始化发出由包含值 [=14] 的服务器变量 APP_WARMING_UP
标记的请求时重写响应代码=].当满足此条件时,我们可以创建一个自定义响应作为操作,并使用 555 弹出 statusCode 属性。
<rewrite>
<rules>
<rule name="WarmUp" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{APP_WARMING_UP}" pattern="1" />
</conditions>
<action type="CustomResponse" statusCode="555" statusReason="Site is warming up" statusDescription="Try again shortly" />
</rule>
</rules>
</rewrite>
然后捕获状态 555 作为自定义错误并将用户引导至友好的热身页面 warmup.html
<system.webServer>
<httpErrors errorMode="Custom">
<error statusCode="555" path="warmup.html" responseMode="File" />
</httpErrors>
</system.webServer>
我目前正在使用 IIS 的 ApplicationInitialization 功能预热我的 ASP.NET 应用程序。我已将属性 remapManagedRequestsTo 设置为 "warmup.html".
<applicationInitialization remapManagedRequestsTo="warmup.html" skipManagedModules="true" doAppInitAfterRestart="true" >
<add initializationPage="/home" />
<add initializationPage="/about-us" />
</applicationInitialization>
它运行良好,但我想在 return 将 Warmup.html 的内容 return 发送到浏览器时 return 自定义状态代码。这样一来,当我 运行 部署后进行一些冒烟测试时,我就会知道预热何时完成。
我尝试使用 URL Rewrite 将状态代码从 200 更改为 555 以提供服务 warmup.html 它确实改变了状态代码但是不提供 warmup.html
中的内容<rewrite>
<rules>
<rule name="Change warm up status code" stopProcessing="true">
<match url="warmup.html" />
<action type="CustomResponse" statusCode="555" subStatusCode="0"/>
</rule>
</rules>
</rewrite>
有什么方法可以同时提供 warmup.html 的内容 AND return 555?
的自定义状态代码终于在 Morten Bock
写的博客 post 中找到了我的答案原来我必须删除 remapManagedRequestsTo 和 skipManagedModules 这两个属性(默认值为 false),这让我们得到
<applicationInitialization doAppInitAfterRestart="true">
<add initializationPage="/home" />
<add initializationPage="/about-us" />
</applicationInitialization>
然后让 URL 重写模块接管,但我们希望在应用程序初始化发出由包含值 [=14] 的服务器变量 APP_WARMING_UP
标记的请求时重写响应代码=].当满足此条件时,我们可以创建一个自定义响应作为操作,并使用 555 弹出 statusCode 属性。
<rewrite>
<rules>
<rule name="WarmUp" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{APP_WARMING_UP}" pattern="1" />
</conditions>
<action type="CustomResponse" statusCode="555" statusReason="Site is warming up" statusDescription="Try again shortly" />
</rule>
</rules>
</rewrite>
然后捕获状态 555 作为自定义错误并将用户引导至友好的热身页面 warmup.html
<system.webServer>
<httpErrors errorMode="Custom">
<error statusCode="555" path="warmup.html" responseMode="File" />
</httpErrors>
</system.webServer>