我使用的是目標文件寫入到一個日誌文件,像這樣:n日誌文件目標:從文件共享應用程序啓動,寫入C: TEMP - 不輸出
fileName="/Temp/Logs/AppDir/App.log"
當應用程序上本地驅動器工作正常並寫入此位置。如果我將應用程序移動到文件共享,那麼我不會在此位置獲得日誌文件,也不會出現錯誤。
我認爲這是權限。在這種情況下,您是否可以不寫入本地驅動器?我可以把它寫在其他地方嗎?還是在NLog配置中有一些設置或我需要看的東西?
科從Program.cs中的代碼:請注意,我沒有看到消息框在漁獲物和應用程序正常運行:
static void Main()
{
try
{
Logger.Info("Application Start");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var settings = new Settings();
if (settings.AccessDenied)
Application.Run(new FormAccessDenied());
else
Application.Run(new FormMain(settings));
}
catch (CommunicationException ce)
{
Logger.Error($"{ce.Message}{Environment.NewLine}{ce.StackTrace}");
MessageBox.Show($"{ce.Message}{Environment.NewLine}The application can not proceed");
}
catch (Exception up)
{
Logger.Error($"{up.Message}{Environment.NewLine}{up.StackTrace}");
MessageBox.Show($"An error has occurred in the application. Please consult the log file for more information");
}
}
謝謝!
添加一些記錄到你的代碼,看看你得到一個'訪問Denied'錯誤..這聽起來像一個權限問題。如果我們可以看到你的代碼正在做什麼 – MethodMan
在一分鐘內它會記錄它啓動。它甚至不創建文件。我不知道我會添加什麼日誌代碼,因爲這是日誌記錄代碼。 – EricR
你熟悉'try {} catch()'並使用處理System.IO錯誤的異常..只是發佈你的代碼,我們可以幫助你,否則你會基於猜測/猜測期待很多答案。 – MethodMan