[英]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
我已經找到我的 Windows 身份驗證,並且消息框顯示我的名字( domainAgus.Suhardi ,沒有像domain\Agus.Suhardi這樣的斜線)
var winlogon = '@HttpContext.Current.User.Identity.Name';
alert (winlogon);
這是我的許可 Kalbox 文件夾
FYI 文件夾 kalbox 僅添加用戶 AD(Active Directory)和我的 IIS 用戶名是
此錯誤可能是由您的 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.