single.php

メモリ ゲートの確認は失敗しました

あまり出ないエラーですが、マシンのメモリ消費量によって出るらしい。私も開発環境では皆無で、稼働環境(仮想環境)にデプロイして初めて見ることができました。ASP.NETからのエラーメッセージは以下のようなメッセージが表示されます。

空きメモリ (******* バイト) が総メモリの *% 未満であるため、メモリ ゲートの確認は失敗しました。 その結果、サービスは受け取る要求に使用できません。 これを解決するには、マシンの負荷を減らすか、serviceHostingEnvironment 構成要素の minFreeMemoryPercentageToActivateService の値を調整します。

それにしても長い属性名です。
ミニマムフリーメモリーパーセンテージトゥーアクティブサービス

4.5.1からの対応のようで、それ以前の環境ではスローではなくスルーされるようです。つまりメモリの確認などなしで実行される。

Web.configに「minFreeMemoryPercentageToActivateService」属性の値を追加することで対応できるみたいです。値を0にすると、4.5のように確認しなくなり、数字を多くすると確認するパーセンテージが増えます(既定値は5)

実際に書くとこんな感じ

<system.serviceModel>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" minFreeMemoryPercentageToActivateService="0" />
</system.serviceModel>

通常は例外をスローしたくなくなるような前提ですが、テスト機のようにメモリ量が少なめに設定してある場合には、必要なのかも知れません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です