【发布时间】:2013-05-17 06:46:17
【问题描述】:
我已使用以下代码从服务器下载文件,该服务器在每个浏览器的开发和 QA 服务器中都可以正常工作,但在投入生产时出现错误。错误是System.IO.DirectoryNotFoundException部分路径不正确
使用的代码:
protected void lnkDownload_Click(object sender, eventArgs e)
{
LinkButton lnkbtn = sender as LinkButton;
GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
string filePath = ((HtmlInputHidden)gvFilesDetails.Rows[gvrow.RowIndex].FindControl("hdnFileLocation")).Value.ToString();
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\"");
Response.TransmitFile(Server.MapPath("~/" + filePath));
Response.End();
}
这个问题似乎很奇怪而且调试起来很痛苦,因为它只发生在生产服务器中。 请帮帮我。
【问题讨论】:
-
如何在代码中添加一些日志记录以使其可以投入生产?
-
您的 Web 应用程序是否有权写入生产服务器上的特定位置?
-
@chridam 是的,Web 应用程序已获得完全权限。
-
@watraplion: filepath 包含要下载的文件的完整路径,例如"附件\DownloadableFiles\ProjectOverview.pptx"
-
你得到的值是多少 -> Server.MapPath("~/" + filePath) ?检查完整的 URL 是否正确。如果正确在浏览器中输入完整的 URL 并检查是否正在下载你的 pptx 文件??