あまり出ないエラーですが、マシンのメモリ消費量によって出るらしい。私も開発環境では皆無で、稼働環境(仮想環境)にデプロイして初めて見ることができました。ASP.NETからのエラーメッセージは以下のようなメッセージが表示されます。
空きメモリ (******* バイト) が総メモリの *% 未満であるため、メモリ ゲートの確認は失敗しました。 その結果、サービスは受け取る要求に使用できません。 これを解決するには、マシンの負荷を減らすか、serviceHostingEnvironment 構成要素の minFreeMemoryPercentageToActivateService の値を調整します。
それにしても長い属性名です。
ミニマムフリーメモリーパーセンテージトゥーアクティブサービス
4.5.1からの対応のようで、それ以前の環境ではスローではなくスルーされるようです。つまりメモリの確認などなしで実行される。
Web.configに「minFreeMemoryPercentageToActivateService」属性の値を追加することで対応できるみたいです。値を0にすると、4.5のように確認しなくなり、数字を多くすると確認するパーセンテージが増えます(既定値は5)
実際に書くとこんな感じ
<system.serviceModel> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" minFreeMemoryPercentageToActivateService="0" /> </system.serviceModel>
通常は例外をスローしたくなくなるような前提ですが、テスト機のようにメモリ量が少なめに設定してある場合には、必要なのかも知れません。