过去两天我一直在研究一个问题。我试图以各种方式进行调试但是徒劳无功。 一切都在我的本地工作正常。但在生产上这失败了。 以下是该问题的简要说明。 我有一个下载按钮,当我点击该按钮时,我打算从服务器下载文件。
protected void Download_Click(object sender,EventArgs e) {
Button downloadButton = sender as Button;
string filePath = downloadButton.CommandArgument;
string stuid = Session["browse_files_for_student"].ToString();
string stuUsername = MyHelper.GetUsernameForStudentID(stuid);
MyHelper.LogAccess(User.Identity.Name, StudentUsername.Text, filePath, MyHelper.LogAccessType.Read);
FileInfo file = new FileInfo(filePath);
// Download the file
Response.Clear();
Response.AppendHeader("content-disposition", "attachment; filename=" + file.Name);
try
{
Response.TransmitFile(filePath);
}
catch (IOException error)
{
Response.Cookies.Add(new HttpCookie("global_last_error", "The file is in use by another process."));
Response.Redirect("~/Public/KnownError.aspx");
}
Response.End();
}
我在事件查看器上看到它生成: TransmitFile failed:FileName:dsdfsfd.doc,Impersonation Enabled:0,Token有效:1 HRESULT:0x8007052e。
环境:该网站部署在Windows 2000服务器上。
任何帮助和评论将不胜感激。 谢谢。
答案 0 :(得分:0)
运行应用程序的帐户(可能是IIS池帐户)无权访问您尝试发送的文件。错误代码0x8007052e
表示:
Error code: (HRESULT) 0x8007052e (2147943726) - Logon failure: unknown user name or bad password.
将来你可以使用例如cdb命令检查错误代码(cdb是免费提供的Windows调试工具的一部分):
cdb notepad.exe
然后它开始了:
0:000> !error 0x8007052e
Error code: (HRESULT) 0x8007052e (2147943726) - Logon failure: unknown user name or bad password.
希望有所帮助:)