簡體   English   中英

使用 MVC IIS 8 錯誤插入文件夾 C# 發生未處理的訪問異常

[英]Insert Folder C# with MVC IIS 8 Error An unhandled access exception has occurred

I Debugging with locally on Windows 10 Pro, VS 2019. This will run just fine on my local machine, but not on the web server my Server is Windows Server 2012 R2 with IIS 8. Does anyone have any ideas as to what the problem might是?

這是我的代碼:

看法

$.ajax({
                        url: 'AddFolder',
                        type: 'post',
                        data: JSON.stringify(dto),
                        dataType: 'json',
                        contentType: 'application/json;charset=utf-8',
                        success: function (data) {
                            alert("Insert Folder Success");
                            $('#foldername').val("");
                        },
                        error: function (ex) {
                            alert(JSON.stringify(ex));
                        }
                    });

Controller

 public ActionResult AddFolder(videopath model)
        {
            string conSQL = mySetting.ConnectionString;
            SqlDataAdapter dataAdapt = new SqlDataAdapter();
            SqlConnection conn = new SqlConnection(conSQL);
            List<string> ModelData = new List<string>();
            string result;

            try
            {

                string path1 =@"\\kalbox\Video\";
                string path2 = Path.Combine(path1, model.FolderName);
                if (!Directory.Exists(path2))
                {
                    Directory.CreateDirectory(path2);
                    using (SqlCommand command = new SqlCommand("InsertFolderPath", conn))
                    {
                        conn.Open();
                        command.CommandType = CommandType.StoredProcedure;

                        command.Parameters.Add("@FolderName", System.Data.SqlDbType.VarChar);
                        command.Parameters["@FolderName"].Value = model.FolderName;
                        command.Parameters.Add("@FolderPath", System.Data.SqlDbType.VarChar);
                        command.Parameters["@FolderPath"].Value = path2;


                        result = (string)command.ExecuteScalar();
                        ModelData.Add(result);
                        conn.Close();

                    }
                }
                else
                {
                    Console.WriteLine("Folder Exists");
                }
            }
            catch (Exception ex)
            {

                throw ex;
            }
            return Json(ModelData, JsonRequestBehavior.AllowGet);
        }

這是我的錯誤:

  • ASP.NET web 頁面 output:訪問路徑 '\\kalbox\Video\1231' 被拒絕

  • 應用程序事件日志:

    Event code: 4011 
    Event message: An unhandled access exception has occurred. 
    Event time: 4/15/2021 4:41:57 PM 
    Event time (UTC): 4/15/2021 9:41:57 AM 
    Event ID: 0c49e37dc23b486b8537561bbc024a5b 
    Event sequence: 7 
    Event occurrence: 1 
    Event detail code: 0 
     
    Application information: 
        Application domain: /LM/W3SVC/1/ROOT/Video_OPL-66-132629533163447222 
        Trust level: Full 
        Application Virtual Path: /Video_OPL 
        Application Path: D:\Video_Training\ 
        Machine name: SERVERNAME
     
    Process information: 
        Process ID: 12844 
        Process name: w3wp.exe 
        Account name: NT AUTHORITY\NETWORK SERVICE 
     
    Request information: 
        Request URL: http:********
        Request path: /Video_OPL/Home/AddFolder 
        User host address: ****** 
        User: domain\Agus.Suhardi 
        Is authenticated: True 
        Authentication Type: Negotiate 
        Thread account name: NT AUTHORITY\NETWORK SERVICE 

  • F12 控制台瀏覽器谷歌瀏覽器:加載資源失敗:服務器響應狀態為 500(內部服務器錯誤)

我已經找到我的 Windows 身份驗證,並且消息框顯示我的名字( domainAgus.Suhardi ,沒有像domain\Agus.Suhardi這樣的斜線)

var winlogon = '@HttpContext.Current.User.Identity.Name';
alert (winlogon);

這是我的許可 Kalbox 文件夾

FYI 文件夾 kalbox 僅添加用戶 AD(Active Directory)和我的 IIS 用戶名是

NT AUTHORITY\網絡服務在此處輸入圖像描述

此錯誤可能是由您的 asp.net 帳戶 {MACHINE}\ASPNET 沒有對路徑“\kalbox\Video\1231”的寫入權限引起的。

您可以嘗試以下步驟來解決此問題:

右鍵單擊文件夾屬性 > 安全選項卡 > 編輯 > 添加 > 位置 > 選擇您的本地計算機 > 單擊確定 > 在“輸入 object 名稱以選擇”下方鍵入 ASPNET > 單擊檢查名稱 選中所需訪問權限的框(完全控制)。 如果它對您不起作用,請對網絡服務執行相同操作。

現在這應該會顯示您的本地 {MACHINENAME}\ASPNET 帳戶,然后您將寫入權限設置為該帳戶。

否則,如果應用程序正在模擬 via,則身份將是匿名用戶(通常是 IUSR_MACHINENAME)或經過身份驗證的請求用戶。

我已經解決了我的情況,您可以嘗試添加用戶Everyone 並給予完全控制

順便說一句 tq Samwu 回答你,你是對的我的帳戶 IIS 沒有寫權限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM