2010-03-25 27 views
5

Tôi gặp sự cố khi nhận nội dung động đến từ một handler tùy chỉnh để được nén bởi IIS 7.IIS7 nén nội dung động từ handler tùy chỉnh

xử lý của chúng tôi spits ra dữ liệu json (Content-Type: application/json; charset = utf-8) và trả lời url giống như sau: domain.com/example.mal/OperationName?Param1=Val1 & Param2 = Val2

Trong IIS 6, tất cả những gì chúng tôi phải làm là đặt chỉnh sửa MetaBase.xml và trong phần tử IIsCompressionScheme đảm bảo rằng thuộc tính HcScriptFileExtensions có phần mở rộng tùy chỉnh 'mal' được bao gồm trong nó.

Nén tĩnh và động được bật ở cấp máy chủ và trang web. Tôi có thể xác nhận rằng các trang .aspx bình thường được nén chính xác. Nội dung duy nhất tôi không thể nén là nội dung đến từ trình xử lý tùy chỉnh.

Tôi đã thử các configs sau không thành công:

<handlers> 
    <add name="MyJsonService" verb="GET,POST" path="*.mal" type="Library.Web.HttpHandlers.MyJsonServiceHandlerFactory, Library.Web" /> 
</handlers> 

<httpCompression> 
    <dynamicTypes> 
    <add mimeType="application/json" enabled="true" /> 
    </dynamicTypes> 
</httpCompression> 

_

<httpCompression> 
    <dynamicTypes> 
    <add mimeType="application/*" enabled="true" /> 
    </dynamicTypes> 
</httpCompression> 

_

<staticContent> 
    <mimeMap fileExtension=".mal" mimeType="application/json" /> 
</staticContent> 
<httpCompression> 
    <dynamicTypes> 
    <add mimeType="application/*" enabled="true" /> 
    </dynamicTypes> 
</httpCompression> 

Cảm ơn trước sự giúp đỡ.

Trả lời

5

có vẻ như đó là lỗi trong quá trình nén IIS. tôi cần phải thêm dòng sau vào file applicationHost.config (dưới httpCompression) thay vì web.config

 <dynamicTypes> 
      <add mimeType="application/json; charset=utf-8" enabled="true" /> 
     </dynamicTypes> 

tìm thấy một số giúp đỡ thêm từ đây: http://forums.iis.net/p/1162828/1925766.aspx

+2

+1, nhưng bạn nên đề cập đến sự khác biệt mà 'charset = utf-8' tạo ra, cần thiết vì lỗi phân tích cú pháp IIS được đề cập trong chuỗi bạn liên kết tới – orip

Các vấn đề liên quan