Der Grund dafür, dass nur Ihre ASPX-Datei komprimiert wird, ist, dass der von Ihnen geschriebene Code nur in die ASPX-Datei eingebettet ist. Eine ASPX-Datei ist eine separate Anforderung von allen darin enthaltenen verknüpften Inhalten. Wenn Sie also eine ASPX-Seite haben, die Folgendes enthält:
<img src="www.example.com\exampleimg.jpg" alt="example" />
Dies entspricht 2 Anfragen (abgesehen von DNS-Lookups) von Ihrem Browser an die Ressourcen:
- für die aspx Seite und
- für das auf der aspx-Seite enthaltene Bild.
Jede Anfrage hat ihren eigenen Antwortdampf. Der von Ihnen veröffentlichte Code wird nur an den ASPX-Antwortstrom angehängt, weshalb nur Ihre ASPX-Seite komprimiert wird. Die Zeilen 1 und 2 Ihres veröffentlichten Codes übernehmen im Wesentlichen den normalen Antwortstrom der Seite und fügen einen "Middle Man" -Code ein, der in diesem Fall den normalen Ausgabestream mit einem GZip-Stream frisst und komprimiert und diesen stattdessen über den Draht sendet.
Die Zeilen 3 und 4 richten die Antwortheader ein. Alle http-Anfragen und -Antworten haben Header, die vor dem Inhalt gesendet werden. Diese richten die Anfrage / Antwort so ein, dass Server und Client wissen, was und wie gesendet wird.
In diesem Fall informiert Zeile 3 den Client-Browser darüber, dass der Antwortstrom über gzip komprimiert wird und daher vor der Anzeige vom Client-Browser dekomprimiert werden muss.
Und Zeile 4 aktiviert einfach den Accept-Encoding-Header der Antwort. Dies wäre sonst in der Antwort nicht enthalten gewesen.
Es gibt steckbare Module, die Sie schreiben / erhalten können, mit denen Sie eine Vielzahl anderer MIME-Typen wie * .js und * .css komprimieren können. Sie sollten jedoch nur die integrierte Komprimierungsfunktion von IIS verwenden.
Sie haben nicht gesagt, welche Version von IIS Sie verwenden, aber wenn es IIS 7.0 wäre, müssten Sie Folgendes in den <system.webserver>
Abschnitt Ihrer web.config-Datei aufnehmen:
<httpCompression>
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<staticTypes>
<add mimeType="text/*" enabled="true" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" />
..
Richard