我的 WCF 服务合同必须使用以下方法:
[OperationContract]
string GetFile(int id);
[OperationContract]
void UploadFile(int id, string text);
GetFile 返回文件的文本,UploadFile 将一些文件的内容发送到服务器。
当文件大小约为几 MB(在我的情况下为 4.37 MB)时,有一个奇怪的行为:GetFile 工作正常,客户端可以毫无问题地获取长文本,但 UploadFile 无法将相同的文件发送到服务器。客户端在执行此方法时冻结,并且似乎不会完成操作。我等了几分钟,但没有结果,我强行停止了客户端。
所以,我的问题是这种转移的方向有什么区别吗?我知道 WCF 流,它应该用于将大文件发送到服务器,我将使用它来更改我的代码。我想知道为什么只有将文件传输到服务器而服务器正确返回相同大小的数据时才会出现问题?
更新。UploadFile 不应该是 OneWay 操作,因为我需要知道它是否已经成功。执行不会丰富服务器。我在服务器端设置断点,它不会触发。