2011-10-30 2 views
1

iis7でiis expressを使用し、iis express in devを使用していて、ビューの1つで例外が発生すると、ブラウザはテキストエディタでバイナリのように見えるものを返します。asp.net mvcエラーがysodを表示しない

正常なysodを生成しません。

誰もこれまで見たことがありますか?

乾杯、 バイロン

EDIT私の圧縮アクションフィルタに関連

その。ビューで例外が発生した場合、レスポンスは「解凍」されていないようです。

public class EnableCompression : ActionFilterAttribute { 

    public override void OnActionExecuting(ActionExecutingContext filterContext) { 

     HttpRequestBase request = filterContext.HttpContext.Request; 

     string acceptEncoding = request.Headers["Accept-Encoding"]; 

     if (string.IsNullOrEmpty(acceptEncoding)) return; 

     acceptEncoding = acceptEncoding.ToUpperInvariant(); 

     HttpResponseBase response = filterContext.HttpContext.Response; 

     if (acceptEncoding.Contains("GZIP")) { 
      response.AppendHeader("Content-encoding", "gzip"); 
      response.Filter = new GZipStream(response.Filter, CompressionMode.Compress); 
     } else if (acceptEncoding.Contains("DEFLATE")) { 
      response.AppendHeader("Content-encoding", "deflate"); 
      response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress); 
     } 
    } 
} 
+0

デバッグを試しましたか?コードをステップ実行するか、少なくともコードの先頭にブレークポイントを設定して、これを引き起こしていると思っていますか? –

+0

実際の例外の後ではありません。なぜ、例外が表示テンプレートをレンダリングするときにスローされるのか、私には伝統的な黄色の画面が表示されません。 – boz

答えて

0

request.Headers ["Accept-Encoding"]のすべての/デフォルトのケースを処理していないためです。あなたは他の場合のための他の処理がない "if/else if"を持っています。可能な値はすべてhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlに表示されます。 if/else ifで捕捉されないリクエストに対してデフォルトハンドラを追加します。また、.ToLowerを使用して、小文字の値のみをテストすることもできます。

関連する問題