我有一个.NET MVC项目,我试图从临时文件夹下载文件。这是我的观看代码:
window.open('@Url.Action("DownloadDocument", "Controller")?fileName=' + fileName, '_blank');
这是我的控制器代码:
public FileResult DownloadDocument(string fileName)
{
string path = Web.Common.Properties.Settings.Default.TempDocPath + "OpenTable\\";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
return File(fileName, "application/xml", fileName + ".xml");
}
此代码适用于IIS,正在下载文件。但是我尝试从远程服务器下载时遇到500错误。
无法访问此网站 < ...>的网页可能暂时停止或可能已永久移动到新的网址。 ERR_INVALID_RESPONSE
最糟糕的是,系统中有一些几乎完全相同的代码片段,它们在IIS和远程服务器上都有效。
有什么建议可以做什么?
更新
好消息。当我尝试邮递员时,它抛出了错误路径的文件未找到错误。这很容易解决:
return File(Path.Combine(path, fileName), "application/xml", fileName + ".xml");
所以它让我感到困惑...它是如何以及为什么它在IIS上以错误的路径在本地工作?
答案 0 :(得分:0)
您需要在Web应用程序的根文件夹中创建临时文件夹,例如〜/ Temp,然后使用下面的代码访问该文件夹而不是Web.Common.Properties.Settings.Default.TempDocPath,我认为这可能只是一个常数。
System.Web.Hosting.HostingEnvironment.MapPath("~/Temp")