web-dev-qa-db-ja.com

IIS 7.5(Windows 7)でのASP.NET Webサイトの実行速度が非常に遅い

デスクトップPCにWindows7 x64Ultimateをインストールしました。 IIS、Visual Studio 2008、登録済みASP.NETなどをインストールしました。

私はこのASP.NET3.5 Webサイトを持っており、この新しいIISで非常に遅い実行に取り組んでいます。 STAサーバーとPRODサーバー(Windows 2003 Server)、および古いXP/IIS 5.1では、すべてがスムーズに実行されます。

通常、読み込みに1〜2秒かかるページは8秒かかります!!!

私が見た この投稿 on IISフォーラム。Vista/ 7が接続をプールしていないことについて何かを言っています(ただ、ウェブサイトはローカルで実行されていますが、リモートサーバーでホストされているSQLServer 2005)。

ページの「読み込みを開始」するのに時間がかかるようです...つまり、[更新]をクリックすると、数秒間「ローカルホストを待機中」のままになります...その後、応答を受け取ると、ページ全体が正常に読み込まれます。 。

Win7 /IIS7.5にデータベース接続をプールさせる方法がわかりません。

編集:新しい空のASP.NET Webアプリケーションを作成して、問題が発生するかどうかを確認しました。答えはノーです。デフォルトのページが空の場合と同じように高速に応答します。たぶん、DB接続に関連するものです。さらにテストを行います。それはそれを修正する方法でなければなりません...

編集2:アプリのデバッグ.NETコード(Page_Loadなど)の実行後に遅延が発生することに気づきました...したがって、遅延はIISがページをブラウザに提供するときのどこかにあります。

14
emzero

同じ問題を抱えている人のために、ここに2つの可能な解決策があります。

  • 1)FirefoxでのIPv6サポートの無効化(Firefoxのみ)

私が見つけた著者のほとんどは、このアプローチを最も迅速でクリーンなソリューションとして提案しています。基本的に、Firefoxで構成設定(about:config)を開き、network.dns.disableIPv6設定をtrueに変更する必要があります。

  • 2)ホストファイル(すべてのブラウザ)のローカルホスト設定を変更します

これは、自分のマシンのIPv6設定にどこでどのように干渉できるかを確認するためのアイデアとして思いついたものです。上記のソースに関するコメントの1つに、URLのlocalhostをマシン名に置き換えるだけで問題を解決できるというコメントがありました。

IPv6ローカルホストルックアップを無効にすることは、Firefoxで直接IPv6を無効にすることと同じことを確認するのにそれほど時間はかかりませんでした。

あなたがする必要があるのは基本的にあなたのhostsファイルのこの特定の行をコメント/削除することです:

#::1             localhost

注::: 1表記は、IPv4127.0.0.1ルックアップアドレスと同等のIPv6です。

2番目の解決策は、一般的にIPv6を無効にしたくないユーザーに適している可能性があり、最初の解決策は、通常の作業でIPv6をまだ使用していない他のすべてのユーザーに適していると思います。

5
emzero

私は同じ問題を抱えていました:IIS 7.5 on Windows 7 64bit with Core 2 Duo with 4GB RAM and 3 Applicationプールプロセスは1つのWebサイトのみを実行しています。IISに速度を戻すために私が行ったことは次のとおりです。問題は解決しました...

私にとっての秘訣は、IIS.netでMicrosoftの指示に従って、32ビットワーカーを使用してIISを実行することでした。これは、ここで読むことができます。

http://learn.iis.net/page.aspx/201/32-bit-mode-worker-processes/

提供されている簡単な解決策(ここで書き直したくない)... Windowsコマンドプロンプトから1行のコマンドを実行するか、WindowsPowerShellから1行のコマンドを実行できます。コマンドラインから実行しただけです(コマンドラインまたはPowerShellを管理者として開いていることを確認してください-右クリック> [管理者として実行])。

ありがとう、マーティ・マギー

3
Marty McGee

複数のプロセスをアプリケーションプールとして実行してみることができます。

  • IISを開きます
  • [アプリケーションプール]をクリックします
  • アプリのアプリプールを右クリックし、[詳細設定]をクリックします
  • 「MaximumWorkerProcesses」を見つけて、3(または実行を許可するプロセスの数)に更新します。
1
Russell

オペレーションがIIS 7.5を実行していたことは知っていますが、これは彼には当てはまらない可能性がありますが、IIS Express 8.0を実行している他のユーザーに役立つ可能性があるためこれを投稿します。私は同じ問題を抱えていましたが、IPv6またはhostsファイルの変更はどれもうまくいきませんでした。私のasp.netMVC4プロジェクトは、ローカルホストでjsの変更を更新するためにF5を押した後、本当に遅くなりました。これは、Chrome、FF、IEのすべてのブラウザで発生していました。最終的に、IIS Express 8.0はjsファイルを提供するときに非常に遅く、バグのように見えることを発見しました。コマンドラインでiisexpressを実行してF5キーを押すと、各jsファイルの読み込みに4〜5秒かかることがわかりました。

最終的にIIS8.0をアンインストールしてIIS express 7.5をインストールすると、すぐに問題が修正されました。これが私が従ったステップです:

  • IIS express8.0をアンインストールします
  • IISExpressフォルダーを削除します(Win 7では、My Documents\IISExpressにあります)
  • IIS Express 7.5をインストールします( IIS Express 7.5のダウンロードへのリンク

IIS Express8.0はVS2012とともにインストールされているようです。そのため、新しいインストールまたはサービスパックの更新があった場合は、以前のIISExpressバージョンがアップグレードされる可能性があります。

0
Ciaran Bruen