.Net利用時のサーバーエラー(2000,2003以降)



WEBサーバーをクラスタリングする目的で、
.Netアプリケーションのファイルをファイルサーバーにおいてある環境の場合、
「ネットワーク BIOS コマンドが制限値に達しました。」
エラーが多発します。

そのエラーメッセージが表示されればまだ対処の方法が多少なりとも考えられるのですが、
実際は単純に「ランタイムエラー」と表示されるだけの場合が圧倒的に多く、
対処法がまったくわからず途方にくれてしまいます。

このような場合は以下の対処法で改善されます。
(根本的にエラーゼロにはなりません。改善される可能性があるだけです)

原因:「クライアントでの <REG PATH>MaxCmds</REG PATH>MaxCmds
レジストリ値設定が 50 未満であるまたは
サーバーの <REG PATH>MaxMpxCt</REG PATH>MaxMpxCt レジストリ値設定が
50 未満である場合、発生することがあります。」
(マイクロソフトサポート情報810886より転載)

対処法:
1.WEBサーバー側の「インターネットインフォメーションサービスマネージャ」の
「webサイト」から目的のサイト(多数のサイトをホスティングしていることが前提で)を
右クリック→プロパティを開いて「ディレクトリセキュリティ(認証とアクセス)」
「ホームディレクトリ(接続)」どちらともユーザー名をファイルサーバーに
アクセスできるアカウントを使用し、サイト毎すべて別のユーザにする。

2.同じく「インターネットインフォメーションサービスマネージャ」の
アプリケーションプールを右クリックで「新規作成」→「アプリケーションプール」で
サイト毎(多数のサイトをホスティングしていることが前提で)に
わかりやすい名前で新しいアプリケーションプールを作成する。

次に目的のサイトを右クリック→プロパティを開いて
「ホームディレクトリ」下段にある「アプリケーションプール」を
展開し先ほど作ったサイト毎の 新しいアプリケーションプールを割り当てる。

3.WEBサーバー側のレジストリ
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
lanmanworkstation\parameters」を開き
新しい REG_DWORD値
「MaxCmds」を作成10進数で「2048」とセット。

4.次にファイルサーバー側のレジストリ
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
lanmanserver\parameters」を開き
新しい REG_DWORD値
「MaxMpxCt」を作成10進数で「2048」とセット。

解説:レジストリ変更は非常に危険です。
自己責任で行ってください。
この変更を行ってもエラーが少なくなるだけで根本改善はしません。

記事id:80 / 2678PV

関連記事