クライアントに送信する前に応答から空白を削除する単純なHttpModuleを作成しました。これはIIS7.0のaspxページでは正常に機能しますが、静的htmlページを作成して呼び出すと、HttpModuleが起動しません(ソースに空白が含まれているため、削除されているはずです)。どうやら私は正しくやっていない何かがありますが、何がわからない。
私のWebサイトは、.NET4.0および。のアプリケーションプールにありますManagedPipelineMode = Integrated
。
モジュールをManagedModuleとして追加し、GACの厳密な名前キーアセンブリを参照しています。
ありがとう
編集-これはweb.configのsystem.webserver部分です
<system.webServer>
...
<modules runAllManagedModulesForAllRequests="true">
<add name="RemoveWhitespaceHttpModule"
type="HttpModules.Modules.RemoveWhitespaceHttpModule, HttpModules,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=8a83u4bi47o9fo0d"
preCondition="" />
</modules>
<defaultDocument>
<files>
<add value="TestForm.aspx" />
</files>
</defaultDocument>
</system.webServer>
編集-それを修正しました。興味のある人のために、これは私のモジュールが応答をチェックし、空白の削除を続行するかどうかを決定する方法です
if (contentType.Equals("text/html")
&& httpContext.Response.StatusCode == 200
&& httpContext.CurrentHandler != null)
{ ... }
問題は、httpContext.CurrentHandler!=nullの上の3番目の条件にありました。静的な.htmlページに対してこのモジュールを呼び出すと、currentHandlerがnullであったため、コードがhtmlを操作するために内部に入ることはありませんでした。この3番目の条件を削除しましたが、現在は機能しています。みなさん、ありがとうございました