2011-10-18 99 views
2

我試圖在iis中啓用SVGZ,但我遇到了一些麻煩。這是我做的:我添加了一個SVGZ MIME類型IIS控制檯並編譯一個dll來處理減壓,我加入到「ISAPI篩選器」控制檯:在iis中啓用svg解壓縮

namespace svgzHandler 
    { 
     using System; 
     using System.Web;  
     public class svgzHandler : IHttpHandler 
     { 
      public bool IsReusable { get { return true; } } 

      public void ProcessRequest(HttpContext context) 
      { 
       HttpResponse r = context.Response; 
       r.ContentType = "image/svg+xml"; 
       r.AppendHeader("Content-Encoding", "gzip"); 
       r.WriteFile(context.Request.PhysicalPath); 
      } 
     } 
    } 

但它仍然似乎並不工作......這段代碼中是否有錯誤?有什麼我忘了嗎?

這是錯誤我在瀏覽器中得到:

​​3210

感謝您的幫助!

回答

3

編輯:錯過了SVGZ位,所以這是你可能真的想要的東西 - http://forums.iis.net/p/1175276/1970786.aspx

好,快速的問題...

你有沒有想過通過IIS配置這麼做的,而不是C# /。淨?

在的applicationHost.config你應該看到下面的部分

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> 
     <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> 
     <staticTypes> 
      <add mimeType="text/*" enabled="true" /> 
      <add mimeType="message/*" enabled="true" /> 
      <add mimeType="application/javascript" enabled="true" /> 
      <add mimeType="*/*" enabled="false" /> 
     </staticTypes> 
    </httpCompression> 

你可以添加以下內容:

  <add mimeType="image/svg+xml" enabled="true" /> 

你想也需要確保爲.SVG mime類型設置在元素中

 <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 

(該配置沒有從生產服務器上拷貝過來,所以完全沒有這是正確的,但它爲我已經做了其他mimetypes)