3

https を使用した WCF Web サービスがあります。次のインターフェースがあります:

[ServiceContract]
class Service
{
    [OperationContract]
    [WebInvoke(UriTemplate="Method", BodyStyle=WebMessageBodyStyle.Bare)]
    byte[] Method(Stream request)
    {
        // ... Some logic ...
        return someBytes;
    }
}

これはうまく機能しますが、小さな問題が 1 つあります。メソッドの完了後、https 接続を閉じます。WebGet で別のメソッドを使用しています。Stream オブジェクトを返しますが、これは https 接続を閉じません。最初のメソッドで同じアプローチを使用しようとして、次のように書き直しました。

[ServiceContract]
class Service
{
    [OperationContract]
    [WebInvoke(UriTemplate="Method", BodyStyle=WebMessageBodyStyle.Bare)]
    Stream Method(Stream request)
    {
        // ... Some logic ...
        return new MemoryStream(someBytes);
    }
}

しかし、クライアントでメソッドを使用しようとすると、サービスは「メソッドは許可されていません。許可されています: GET、HEAD」と応答します。Stream オブジェクトを返すことで間違っているのか、何かを見逃しているのか教えてください。

UPD: この問題の追跡に関するヒントもお待ちしております。

4

0 に答える 0