ストリームとWebAPIに問題があります。
WebAPIによって消費されるストリームを返します。現在、ストリームを取得した後、ソケットをプールに入れています。しかし、これはいくつかのエラーを引き起こします。
ここで、リクエストが終了した後、ソケットをプールに入れる必要があります。(ストリームは消費され、現在は閉じられています)。
これまたは他のいくつかのベストプラクティスの代表者はいますか?
コード例:
public HttpResponseMessage Get(int fileId)
{
HttpResponseMessage response = null;
response = new HttpResponseMessage(HttpStatusCode.OK);
Stream s = GetFile(id);
response.Content = new StreamContent(fileStream);
}
GetFile(int id)
{
FSClient fs = GetFSClient();
Stream s = fs.GetFileStream(id);
AddFSToPool(fs);
return s;
}
GetFileは、自己プログラムされたFileServer-Clientを使用します。FileServer-Connectionsを再利用するオプションがあります。この接続はプールに保存されます。(プールには未使用のFileServer接続のみがあります)。次のリクエストがGetFSClient()を呼び出すと、接続されているリクエストがプールから取得されます(そしてプールから削除されます)。
ただし、別のリクエストが着信し、プール内にあるFileServer-Connectionを使用する場合(未使用のため)、ストリームが使用されている可能性があるという問題があります。
リクエストが終了し、ストリームが完全に消費された後、「FSClintをプールに入れる」を実行したいと思います。
そのためのエントリポイントはありますか?