1

システム間、ネットワーク間統合のための WCF サービスがあります。このサービスは当初、WCF SVC インターフェイスのみで作成されましたが、開発後に要件が明らかになったため、ASMX インターフェイスをサービスに追加する必要がありました。

さて、これまでのところ、これらすべてがうまく機能しています。Web サービスに 2 つの新しいメソッドを追加したのは今だけSystem.IO.Streamです。そのうちの 1 つはパラメータの 1 つとして を受け入れ、もう 1 つは を返しますがSystem.IO.Stream、問題が発生しました。

WCF インターフェイスは、これらの 2 つのストリームで問題なく動作します。ASMX インターフェイスは、クライアントによって Web 参照として参照されると、自動生成されたクライアント コードで抽象クラスを作成したように見えます: public abstract class Stream.

他の誰かがこれを試したことがありますか?私は自分の選択肢が何であるかを理解しようとしています。欠けている小さなコンポーネントが 1 つだけある場合は、現状のままにしておきたいと思います。そうでない場合、これらの Stream メソッドの 2 つのコピーを作成し、1 つは Stream を受け取り、もう 1 つはバイト配列を受け取り、属性を追加して、WCF が一方を公開し、ASMX がもう一方を公開するようにすることはできますか?

4

1 に答える 1

2

いいえ、レガシー ASMX Web サービスはストリーミングをサポートしていません。これは、大規模なデータとストリーミングのための WCF の新機能です。

これを回避する基本的な方法は、ストリームをチャンクに分割し、ピースごとに送信することです。

WSE と MTOM を使用して同様の動作を実現できますが、同じ結果になるかどうかはわかりません。こちらをご覧ください

于 2013-05-07T04:40:27.333 に答える