2009-06-15 11 views
0

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を返すようになります。

私たちのアプリケーションプール管理パイプラインは "クラシック"で、私も "統合"モードで試してみましたが、問題はまだあります。

誰でも何が起こっているのか考えていますか?

+0

デバッグできますか?サービスがnullを返すと言うと、あなたのコードは有効になりますか?メッセージがあなたのコードにディスパッチされますか? Debuger.Break()をWCFサービス実装に挿入するとどうなりますか? – Cheeso

+0

こんにちは、私はdev環境でこの設定を試していませんでした。 ローカルマシンでいくつかのテストを行い、あなたに戻ってきます。 提案していただきありがとうございます。 – Sebastien

+0

Vista/II7のデバッグマシンでこの動作をデバッグで再現できます。 WCFサービスの実装が呼び出されていない、Debugger.Break()は発生しません。 nullを返すサービスが呼び出される前に、私のUserNamePasswordValidatorの実装が呼び出され、別のWCFサービスが正常に呼び出されます。 – Sebastien

答えて

0

マイクロソフトのケースが解決されました。 これは.Net frameowkr 2.0のバグです。修正プログラムはまもなく利用可能になります。

キロバイトは971030.

問題はアプリケーションドメインにどのようにCLRをロードアセンブリに関連していたです。

0

沖井、いくつかの新しい情報があります。 WCFの問題はありません。

WCFサービスの実装は、オブジェクトプロキシ処理(System.Runtime.Remoting.Proxies.RealProxy)によって行われました。

私たちのベースプロキシはデバッグモードで例外サーバ側を隠していたDebuggerNonUserCode属性を持っていました。

今のところ私はRealProxyが問題の原因であると思われます。後で私の所見を掲載する予定です。ありがとう

+0

この問題については、Microsoftに電話しました。 私は事件が解決されたときに調査結果を掲載する予定です。 – Sebastien

+0

それについてMicrosoftがまだ待っています。 – Sebastien

関連する問題