AsyncFileUpload работает на моей машине, но не на сервере - PullRequest
0 голосов
/ 06 мая 2019

У меня есть страница, где я использую AJAX AsyncFileUpload.Это работает локально на моем компьютере, но на сервере, когда я пытаюсь загрузить эту ошибку, появляется:

    The account used is a computer account. Use your global user account 
    or local user account to access this server.

Информация о версии: Microsoft .NET Framework Версия: 4.0.30319;ASP.NET версия: 4.7.3282.0

Любая помощь в решении этой проблемы приветствуется, спасибо!

Вот мой код aspx.cs, стоящий за asyncfileupload (При загрузке файлсохраняются в таблице с помощью хранимой процедуры):

protected void AsyncFileUpload_Att_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {
        try
        {

                    string filename = e.FileName;

                    if (AsyncFileUpload_Att.PostedFile.ContentLength > 2097151)
                    {
                        Label_AttErr.Text = "File must not exceed 2,097,151 KB (2 GB)";
                        return;
                    }
                    else
                        if (Directory.Exists(@"\\svr-cif01\NetStore4\DASTORE1\ORA Project\" + TxtBx_ORAID.Text))
                        {
                        }
                        else { Directory.CreateDirectory(@"\\svr-cif01\NetStore4\DASTORE1\ORA Project\" + TxtBx_ORAID.Text); }

                    string folderPath = (@"\\svr-cif01\NetStore4\DASTORE1\ORA Project\" + TxtBx_ORAID.Text + @"\");

                    //check if exists

                    if (!File.Exists((folderPath) + filename))
                    {
                        AsyncFileUpload_Att.SaveAs((folderPath) + filename);

                        string ext = Path.GetExtension(filename);
                        string contenttype = string.Empty;

                        string strQuery = "Insert INTO dbo.tbl_ProjAttach([ORAID],[FileName],[filePath],[Date], [ProjAttachTypID],[UserName],[Status],[Notes]) values (@ORAID, @FileName ,@filePath, @Date, @ProjAttachTypID, @UserName,  @Status, @Notes)";
                        SqlCommand cmd = new SqlCommand(strQuery);
                        cmd.Parameters.Add("@ORAID", SqlDbType.VarChar).Value = TxtBx_ORAID.Text;
                        cmd.Parameters.Add("@FileName", SqlDbType.VarChar).Value = filename;
                        cmd.Parameters.Add("@filePath", SqlDbType.VarChar).Value = (folderPath + filename);
                        cmd.Parameters.Add("@Date", SqlDbType.VarChar).Value = DateTime.Today.ToString();
                        if (string.IsNullOrEmpty(DropDwn_ProjTyp.Text))
                        {
                            cmd.Parameters.Add("@ProjAttachTypID", DBNull.Value);
                        }
                        else cmd.Parameters.Add("@ProjAttachTypID", SqlDbType.VarChar).Value = DropDwn_ProjTyp.SelectedValue.ToString();
                        cmd.Parameters.AddWithValue("@UserName", SqlDbType.VarChar).Value = txtLogIn.Text;

                        cmd.Parameters.Add("@Status", DBNull.Value);
                        cmd.Parameters.Add("@Notes", SqlDbType.VarChar).Value = TextArea_Att.InnerText;
                        InsertUpdateData(cmd);
                        GridView_Att.DataBind();
                        Label_Saved.Visible = true;
                        Label_Saved.Text = "File uploaded";

                    }
                    else
                    {
                        Label_AttErr.Text = "File ''" + filename + "'' already Exists. Please Rename the file then Attach again.";
                    }

                }


        catch (Exception ex)
        {
            Label_AttErr.Text = ex.Message;
        }

    }

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Папка, в которую загружается файл, требует разрешения «изменить» для пользователя IIS_IUSRS.

0 голосов
/ 13 мая 2019

Я думаю, вам нужна обертка, сохраните это

using (new ImpersonatedUser(login, domain, password))
{
     save here 
}
...