https://technet.microsoft.com/zh-cn/sysinternals/bb763179.aspx
https://www.cnblogs.com/tl2f/p/5016154.html
Web.config 文件中的 system.webServer 節用於指定適用於 Web 應用程序的 IIS 7.0 設置。system.WebServer 是 configuration 節的子級。有關更多信息,請參見 IIS 7.0: system.webServer Section Group (IIS Settings Schema)(IIS 7.0:system.webServer 節組(IIS 設置架構))。
下面是可以在 system.WebServer 配置組中進行的 Web 服務器設置的示例:
-
當請求未包含特定資源時,Web 服務器返回給客戶端的默認文檔(defaultDocument 元素)。
-
響應的壓縮設置(httpCompression 元素)。
-
自定義標頭(httpProtocol 節的 customHeaders 元素)。
-
模塊(modules 元素)。
-
處理程序(handlers 元素)。
system.webServer 節中的某些設置只適用於 IIS 7.0 集成模式,而不適用於經典模式。具體而言,如果應用程序正在經典模式下運行,則會忽略 Web.config 文件的 system.WebServer節中指定的所有托管代碼模塊和處理程序。與 IIS 的早期版本相同,托管代碼模塊和處理程序必須在 system.web 節的 httpModules 和 httpHandlers 元素中定義。
本主題闡釋需要修改 system.webServer 節的三個常見配置任務:
-
添加默認文件,以便在請求 URL 未包含特定的文件時,提供該默認文件。
-
注冊托管代碼模塊。
-
添加自定義響應標頭。
在Web.config中配置handler節點時發現用vs2010和用vs2015竟然不一樣,經過多次測試發現了一些倪端:
<configuration>
<!--vs2010中需要配這個,vs2015中可省開始-->
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add path="user.ashx(ajax中url請求的路徑)" verb="POST,GET" type="MyHandler.UsersHander(方法的真實路徑即:MyHandler類庫下的UsersHander類)"/>
</httpHandlers>
</system.web>
<!--vs2010中需要配這個,vs2015中可省結束-->
<!--vs2015中需要配這個,vs2010中可省開始-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false" /><!--沒有上面內容時此處可省-->
<handlers>
<add path="user.ashx(ajax中url請求的路徑)" verb="POST,GET" type="MyHandler.UsersHander(方法的真實路徑即:MyHandler類庫下的UsersHander類)"/>
</handlers>
</system.webServer>
<!--vs2015中需要配這個,vs2010中可省結束-->
</configuration>
用於健康檢測:
namespace HealthCheck.Utils { public class HealthCheckHandler : IHttpHandler { public bool IsReusable { get { return true; } } public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write("ok"); } } }
<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> <handlers> <add name="HealthCheck" path="healthcheck.check" type="HealthCheck.Utils.HealthCheckHandler" verb="get"/> </handlers> </system.webServer>
將HealthCheck.Utils做成一個類庫項目(需要繼承IHttpHandler,引入相關引用),生成dll,項目中引入此dll,訪問http://localhost:9152/HealthCheck.check 返回