我正在尝试为用户上传/下载文件开发一个文件管理系统。
该系统包括两部分(机器):
- Web 服务器(asp.net MVC) : 文件 CRUD 文件
- 服务器(WCF):使用Windows文件系统或Nosql存储文件。
使用下载文件时,过程是...https://i.stack.imgur.com/gmL5K.png
文件已发送两次!
我希望文件服务器直接将文件发送回浏览器,但不知道如何做。
我的 wcf 服务协定如下:
interface FileService {
Stream Download(string filename);
void Upload(string filename, Stream file);
}
ASP.net MVC 代码:
class FileController : Controller {
HttpResponseMessage Get(string filename) {
// call wcf service here, and return.
}
}
请建议,谢谢!
更新:
不是action
两次打电话...
我的意思是文件发送两次:从文件服务器到Web服务器再到浏览器
也许是我的程序架构问题,wcf 服务不应该返回流?
看看这个:asp-net-mvc-action-is-called-twice。他们建议添加一个脚本,以便在单击链接时返回 false(不要提及 MVC2 版本)。如果这没有帮助,请查看此页面加载两次在谷歌浏览器中。如果您的 html 中有一个带有空 src 元素的 img 标记,这可能会导致重复调用。