0

IIS 7.0 でホストする WebForms/MVC Web Api アプリケーションが混在しています。Default.aspx と Main.aspx の 2 つのメイン ページがあります。残りはすべて、WEB api 呼び出し/JSON/javascript を介して行われます。ローカル マシンでは問題なく動作しますが、サーバーに公開するときに問題が発生します。

サーバーへの接続をランダムに無視しているようです。正常に動作することもありますが、ロードされないこともあり、最終的にブラウザにネットワーク接続エラーが表示されます。IIS/クライアントからの入力をまったく受信していないのと同じように、アプリケーションをホストするこれらの「ブラインド」タイムスロットの作業プロセスでは、何もしません。次の 10 分で、再び正常に動作します。ここにはパターンは見られませんが、ページへの直接リンクを使用して対処すると、より安定しているようです:http://webserver/AppX/Default.aspx またはhttp://webserver/AppX/Main.aspx

まったく同じ IIS サーバーで、webform アプリである別のアプリケーションが正常に動作します。それらは異なるアプリケーション プールにあります。唯一の違いは、2 番目のアプリがクラシック モードでホストされ、最初のアプリが統合モードでホストされていることです。クラシック モードに切り替えても役に立ちません。ルーティングと、アプリケーションの混合された性質に関係があると思われます。

ここでスタックオーバーフローで見つけたいくつかの同様のケースを調査し、すでに次のことを試しました:

  1. アプリケーション プールを切り替えて、32 ビット アプリを有効にします。64ビットモードでも(動作する場合)動作するように、任意のプラットフォーム用にすべてをコンパイルします。役に立ちませんでした。
  2. aspx ページを無視するようにルーターに指示しました。

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
        routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
        routes.IgnoreRoute("");
        routes.IgnoreRoute("Images/favicon.ico");
    
        var route = routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    
  3. 要求が上記の無視のいずれかをバイパスする場合、Default.aspx にリダイレクトするデフォルト コントローラーがあります。

public class HomeController : ApiController { public HttpResponseMessage Index() { var response = Request.CreateResponse(HttpStatusCode.Unused); response.Headers.Location = new Uri("Default.aspx", UriKind.Relative); return response; } }

  1. 念のため、web.config で最大接続数を 500 に増やしました

上記の何も役に立ちませんでした。他に何を試すことができますか?ありがとう。

4

1 に答える 1

0

IIS サーバーで失敗した要求のトレースをオンにすることをお勧めします。

http://www.iis.net/learn/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis

また、サーバーの IIS ログと HTTPError ログを調べて、何が問題なのかについてのヒントを確認してください。

于 2013-07-17T18:52:56.250 に答える