我有使用 https 的 WCF Web 服务。它有下一个界面:
[ServiceContract]
class Service
{
[OperationContract]
[WebInvoke(UriTemplate="Method", BodyStyle=WebMessageBodyStyle.Bare)]
byte[] Method(Stream request)
{
// ... Some logic ...
return someBytes;
}
}
这很好用,但有一个小问题。方法完成后,它会关闭 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:我也很欣赏有关追查此问题的任何提示。