私のWCFサービス契約は、次のような方法で行う必要があります。
[OperationContract]
string GetFile(int id);
[OperationContract]
void UploadFile(int id, string text);
GetFileはファイルのテキストを返し、UploadFileはファイルのコンテンツをサーバーに送信します。
ファイルのサイズが約数MB(私の場合は4.37 MB)の場合、奇妙な動作があります。GetFileは正常に機能し、クライアントは問題なく長いテキストを取得しますが、UploadFileは同じファイルをサーバーに送信できません。このメソッドの実行中にクライアントがフリーズし、操作が終了しないようです。数分待っていたのですが、結果が出ず、強制的にクライアントを停止しました。
それで、私の質問は、そのような転送の方向に違いはありますか?大きなファイルをサーバーに送信するために使用する必要があるWCFストリーミングについて知っているので、それを使用してコードを変更します。サーバーが同じサイズのデータを正しく返すのに、ファイルがサーバーに転送された場合にのみ問題が発生するのはなぜですか?
アップデート。UploadFileは、成功したかどうかを知る必要があるため、OneWay操作であってはなりません。実行はサーバーを豊かにしません。サーバー側にブレークポイントを設定しましたが、起動しません。