Windows Server 2008 64ビット版でIIS7でホストされている.NET 3.5 SP1で実行されているWCFアプリケーションがあります。同じプールに2つのWCFアプリケーションがあると奇妙な問題が発生する
私たちのアーキテクチャでは、クライアントごとに1つのアプリケーションインスタンスが存在し、DLLはクライアントごとに別々のディレクトリにコピーされます。 IISでは、アプリケーションプールごとに5つまたはそれ以上のクライアントをホストします。各クライアントは、独自のアプリケーション/仮想ディレクトリ/物理ディレクトリが構成されています。
この設定は、WSEで.NET 2.0 ASMX Webservicesを使用する現在のバージョンで正常に動作します。
テストでWCFを使用して新しいバージョンを追加したとき、アプリケーションプールにアプリケーションが1つしかない場合は正常に機能しました。 2つのアプリケーションを同じプールに配置すると、サービスは分離されていないときには何も理由なくnullを返すようになります。
私たちのアプリケーションプール管理パイプラインは "クラシック"で、私も "統合"モードで試してみましたが、問題はまだあります。
誰でも何が起こっているのか考えていますか?
デバッグできますか?サービスがnullを返すと言うと、あなたのコードは有効になりますか?メッセージがあなたのコードにディスパッチされますか? Debuger.Break()をWCFサービス実装に挿入するとどうなりますか? – Cheeso
こんにちは、私はdev環境でこの設定を試していませんでした。 ローカルマシンでいくつかのテストを行い、あなたに戻ってきます。 提案していただきありがとうございます。 – Sebastien
Vista/II7のデバッグマシンでこの動作をデバッグで再現できます。 WCFサービスの実装が呼び出されていない、Debugger.Break()は発生しません。 nullを返すサービスが呼び出される前に、私のUserNamePasswordValidatorの実装が呼び出され、別のWCFサービスが正常に呼び出されます。 – Sebastien