0

ASP.NET Forms アプリケーション、Framework バージョン 4.5、Windows 2008 Server R2 Standard の IIS 7.5 があります。散発的に空白のページが表示されます (下のスクリーンショット)。IIS で Web サイトをリセットすると、問題は解決しますが、2/3 日後に再び発生します。Web.config ファイルには、既定のドキュメントとして上部に "default.aspx" が含まれています。

私のアプリケーションでは、default.aspx はアプリケーションの起動時に作成される空のファイルで、コードやコンテンツは含まれていません。私の推測では、IIS は空白ページをキャッシュに保持し、空白ページを配信することがあります。ソリューション内の他のすべてのページは、物理的に存在しない仮想ページです。ただし、他の URL にアクセスすると、コンテンツが正しく読み込まれます。

問題を解決しなかった次の試みをすでに行っています。

  1. IIS 出力キャッシュ - ユーザー モードとカーネル モードの両方ですべてのキャッシュを防止します。
  2. 既定のドキュメントを読み込む問題を修正するために、Global.asax に次のコード ブロックを追加しました。

    protected void Application_BeginRequest(Object sender, EventArgs e)
    {
      var app = (HttpApplication)sender;
      if (app.Context.Request.Url.LocalPath.EndsWith("/"))
      {                   
      app.Context.RewritePath(string.Concat(app.Context.Request.Url.LocalPath, "default.aspx"));
      }
    }
    

誰かが何か手がかりを思いつくことができますか? 前もって感謝します :)

空白ページのスクリーンショット

4

1 に答える 1

0

この問題は、仮想ページに関するアプリケーションの設計方法が原因で発生すると思います。アプリケーションには "default.aspx" 仮想ページがあり、ルート フォルダーには同じ名前の静的ファイル (単なる空のファイル) があります。私の推測では、ハンドラーが仮想ページではなく静的ページを配信することがあるため、空白の画面が表示されます。

静的ファイル default.aspx を index.html に置き換えた回避策を展開しました。index.html ファイルがロードされた場合にデフォルトのページにリダイレクトするように、次のコードを追加します。

    <meta charset="UTF-8">
    <meta http-equiv="refresh" content="0; url=default.aspx" />

    <script>
        window.location.href = "default.aspx";
    </script>

今のところ問題ないようですが、アプリケーションの動作に注目していきます。

于 2016-06-09T08:15:53.713 に答える