2009-04-09 12 views
1

IIS5サーバーに問題があります。IIS Webサイトがzipファイルの複数のコンテンツタイプヘッダーを送信しています

特定の場合ユーザ/ブラウザをクリックして.zipファイルをダウンロードすると、バイナリの不器用なテキストがブラウザウィンドウにレンダリングされることがあります。必要な動作は、関連するzipアプリケーションでファイルをダウンロードまたは開くことです。

当初、間違ったコンテンツタイプヘッダーがファイルに設定されていると思われました。 IISの技術者は、.zipファイルがMIMEタイプ「application/x-zip-compressed」でIISによって提供されていることを確認しました。

ただし、Wiresharkを使用してHTTPパケットを調べると、の2つのコンテンツタイプヘッダーが返されます。

  • Content-Type:text/html; のcharset = UTF-8
  • のContent-Type: アプリケーション/ X-ZIP圧縮

コンテンツタイプヘッダを送信しているIIS理由を任意のアイデア?これは、通常のHTMLファイルや画像ファイルでは発生しません。それはZIPとPDFで起こります。

私たちはIIS技術者に見せることができる特定の場所はありますか?あるいは、私たちが調べることができる設定ファイルがありますか?

+0

これらのファイルはIISによって直接提供されていますか、または要求に含まれるASP.NETのようなものですか? – meandmycode

+0

私が知る限り、ASP.NETは.ZIPファイルの要求を処理していません。それらはIISによって直接提供されるように見えます。 – frankadelic

+0

IISが実行されているISAPIフィルタをリストできますか?コンテキストタイプの再マッピングに問題がある可能性があります。 –

答えて

0

私は間違いかもしれません。http 1.1ヘッダーは複数のヘッダー定義を送信し、最も特定のものが優先されます。

この例では、2つのtext/htmlを送信してからapplication/x-zip-commercialを送信するので、2番目のものが最も具体的です。クライアントで処理できない場合は、 (この場合は最初の1) -

私はこのhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlを読んで、あなたが言っていることへのポイントのその種ている - これは実際にかかわらず、何が起こっているかであるかどうかわかりません。

もちろん私はあなたがすべてのISAPIフィルタやヘッダを書き換える設定ASP.netのHTTPモジュールを持っていないことを確認してくださいここで

+0

rfcはこれに対して何も言わない。あなたがそのアプリケーション/ x-zip-commercialを推測したかどうかは、text/htmlよりも具体的ではありません。 Acceptヘッダーはあなたが参照している機能を持っていますが、application/x-zip-commercialはapplication/*よりも具体的であり、*/*は最も具体的ではありません。 –

+0

私が言ったように私は完全に基盤から外れているかもしれないと申し訳ありませんが – braindice

0

完全に間違っている可能性があります。ヘッダーがすでに存在するかどうかを確認しない場合は、ヘッダーが置き換えられるのではなく追加されます。しばらく前に、社内の認証モジュールでヘッダーを正しく更新していないので、IISとモジュールの2つの認証ヘッダーを取得していました。

+0

私が知る限り、ISAPIフィルタは使用されていません。 – frankadelic

0

サーバにはどのようなソフトウェアがインストールされていますか.zipファイルを扱うには? looks like IISがレジストリからMIME変換を取得します。使用しているzip-softwareがMIMEタイプを登録している可能性があります。これは、IISが2つのコンテンツタイプヘッダーで応答する理由を説明していないため、ISAPIフィルターや他のMimeテーブルは疑わしいものです。

0

これは、IISがすでにZIPファイルをgzippingすることができることを示唆しているが、一部のブラウザでは、ちょうど(それが二回zip形式されているように)あなたが不正なデータを与え、二次アプリケーションに直接渡す逆らうこのknowledge base article.に関連する可能性があります。 Zip拡張子のMIMEタイプをアプリケーション/オクテットストリームに変更した場合、これは発生しない可能性があります。

0

IISの設定に問題があるようです。しかし、これが事実であればあなたのポストからそれを伝えることはできません。

IIS上でいくつかのレベルでMIMEタイプを設定できます。 IIS 6の環境でこれをシミュレートしようとしましたが、受け入れたヘッダーに応じて1つのMIMEタイプしか受け取りませんでした。

私は/ X-ZIP圧縮されたアプリケーションにし、ファイルのためのサイト上でzipファイルのヘッダーを設定している私は明示的には、私は、これは非常に証明感じてはいけないしかし

tinyget -srv:dev.24.com -uri:/helloworld.zip -tbLoadSecurity 
WWWConnect::Connect("server.domain.com","80") 
IP = "127.0.0.1:80" 
source port: 1581 

REQUEST: ************** 
GET /helloworld.zip HTTP/1.1 
Host: server.domain.com 
Accept: */* 


RESPONSE: ************** 
HTTP/1.1 200 OK 
Content-Length: 155 
Content-Type: text/html 
Last-Modified: Wed, 29 Apr 2009 08:43:10 GMT 
Accept-Ranges: bytes 
ETag: "747da786a6c8c91:0" 
Server: Microsoft-IIS/6.0 
Date: Wed, 29 Apr 2009 10:47:10 GMT 

PK?? 
? ? ? helloworld.txthello worldPK??¶ 
? ? ?  ?   helloworld.txtPK?? ? ? < 7 ? hello world sample 
WWWConnect::Close("server.domain.com","80") 
closed source port: 1581 

にそれを設定しています。しかしいくつかの質問を提起ん:

  1. 何サーバー上の設定をされているすべてのMIMEマップが(Metabase.xmlファイルのサーバー管理者に依頼して、あなたは、彼はいくつかを逃していないことを確認することができますです設定)
  2. あなたのコントロール下にあるネットワーク上のクライアントですか?おそらく、私はプロキシサーバがあなたのサーバとクライアントの間にどのように置かれているのだろうかと疑問に思う。
  3. IISログはどのように見えるのですか?
  4. fiddlerは何を表示するのだろうか?
+0

私が間違っていない限り、iis5にはmetabase.xmlはありません。バイナリファイルmetabase.binです。 – frankadelic

+0

また、-headersでtinygetを実行すると、Wiresharkで見つけたのと同じ結果が得られます.2つのContent-Typeヘッダー。 – frankadelic

0

同様の問題が発生しました。私はIIS 6でダウンロードをテストしていましたが、なぜtest.zipというzipファイルがInternet Explorer 8でテキストとして表示されていたのか理解できませんでした(他のブラウザではダウンロードできました)。

次に、私はテストのために非常に小さなテキストファイルを圧縮していることに気付きました。私の推測では、IEがファイルを盗聴し、テキスト(小さなサイズのためにかなり圧縮されていない)を見て、それがプレーンテキストであると判断したということです。

もう一度大きなファイルを試してみましたが、ダウンロードプロンプトはIE8でOKと表示されました。

あなたのケースに関連していない可能性がありますが、私はそれを言及すると思った。

チーム

関連する問題