0

私は過去2日間問題に取り組んできました。可能な限りあらゆる方法でデバッグを試みましたが、無駄でした。私のローカルではすべてが正常に機能しますが、本番環境ではこれは失敗します。問題について簡単に説明します。ダウンロードボタンがあり、そのボタンをクリックすると、サーバーからファイルをダウンロードする予定です。

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();

}

イベントビューアに次のように表示されます。TransmitFilefailed:FileName:dsdfsfd.doc、Impersonation Enabled:0、Token Valid:1 HRESULT:0x8007052e。

環境:WebサイトはWindows2000サーバーに展開されています。

どんな助けやコメントもいただければ幸いです。ありがとうございました。

4

1 に答える 1

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.

それが役に立てば幸い :)

于 2012-09-27T15:14:34.297 に答える