0

「WCFサービス公開ウィザード」を使用して、いくつかのHL7スキーマ(かなりの数)をwcfサービスとして公開しようとしています。ウィザードは一見正常に実行および完了し、必要なスキーマを公開するサービスを作成します。しかし、新しく作成されたサービスを参照しようとすると、「サーバーアプリケーションが利用できません」というメッセージが表示されます...イベントビューアを調べたところ、「System.OutOfMemoryException」というエラーメッセージが表示されました。「タスクマネージャ」を確認しながらもう一度テストしたところ、aspnet_wp.exeが終了する前に1 GBを超えるRAMを消費していることに気付きました(アプリケーションプールは、許可されている最大メモリ消費量に達した後にリサイクルされた可能性があります)。

なぜこれが起こったのか非常に戸惑っていたので、「Webサービス公開ウィザード」を使用してASMX Webサービスと同じスキーマを公開し、違いが生じるかどうかを確認することにしました。ウィザードを実行した後、サービスを参照しようとしましたが、問題はまったくなく、問題なく動作しました。生成されたWSDL定義を確認しました。これは巨大であり、参照されているすべてのスキーマは、インクルードまたはインポートではなく、インラインスキーマとして追加されました。

これにより、WSDLの生成に問題が発生する可能性があり、公開されたスキーマに非常に多くのインクルードが含まれている可能性がありますが、これが当てはまるかどうかはまだわかりません...

スキーマをwcfサービスとして公開しようとして同様の問題を経験した人はいますか?この問題で私を正しい方向に導く可能性のあるすべての提案を歓迎します。

ありがとう。

-M.Papas

4

1 に答える 1

0

この問題は、明らかに WSDL 生成ツールのメモリの問題です。複雑な、または半複雑なスキーマを Web サービスまたは WCF サービスとして公開すると、通常、メモリ不足の例外が発生します。SAP iDoc のデモを行っているときに、これに数回遭遇しましたが、スキーマが WSDL ツールには複雑すぎるというだけです。それが役立つことを願っています。

于 2009-03-25T02:59:53.467 に答える