簡體   English   中英

基本NLog文件目標在IIS 8和Windows Server 2012下不起作用

[英]Basic NLog file target not working under IIS 8 and Windows Server 2012

我只是不能使NLog在Windows Server 2012 / IIS 8下可靠地工作。這是一個Azure虛擬機(不是webrole),因此事情應該非常簡單。 最初,我有acync包裝器,基於數據庫的目標等。但是我已經將所有內容都剝離到了最低限度,似乎無法使其正常運行!

這是我的NLog.config文件:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      >

    <targets>
        <target xsi:type="File"
             name="nsec"
             fileName="${basedir}app_data/logs/nsec_${shortdate}.log"
             createDirs="true"
             layout="${longdate}|${level:uppercase=true}|${logger}|${aspnet-user-identity}|${message}"
             />
    </targets>

  <rules>
    <logger name="NSec" minlevel="Trace" writeTo="nsec"/> 
  </rules>
</nlog>

如您所見,這里沒有任何幻想。 目標文件應該已經寫入./App_Data/Logs目錄,但是大多數時候沒有寫入任何內容。 有時某些內容會寫入文件中……這是所有內容中最令人毛骨悚然的部分!

在Cassini和IIS Express本地都可以正常運行日志。

為了使NLog正常工作,我需要添加任何內容到我的web.config中嗎? 我什至沒有使用ASP.NET包裝器!

有人知道NLog和IIS8之間有任何不兼容嗎?

UPDATE

我已經在服務器上運行Process Monitor,並且意識到什至沒有嘗試寫入,讀取或查詢日志文件。 似乎完全完全忽略了NLog。 我知道啟動時會讀取NLog.config文件,因為如果我輸入了無效的配置,則在訪問應用程序時會收到錯誤消息,因此NLog會解析該文件。 問題在於,即使正在解析它,有時記錄了某些內容,大多數情況下都不會發生,並且,通過使用Process Monitor的確認,並沒有嘗試訪問/創建/寫入日志文件。

具有諷刺意味的是,在Process Monitor上,我可以看到其他IIS應用程序寫入其自己的NLog文件而沒有問題。 只是該特定應用程序無法記錄日志,而僅在生產機器中!

我剛剛在Uwe Kein的幫助下發現了他,他建議我使用Process Monitor來查看權限是否存在任何問題,實際上,甚至從未訪問過日志文件。 這讓我想知道為什么...而且我剛剛意識到作為NSec記錄器來源的HttpModule根本沒有運行,因此,實際上實際上沒有記錄過日志。

發生此問題的原因是,在先前的部署中未成功更新目標計算機上的web.config,因此以IIS6方式配置了HttpModule ...我必須將其添加到模塊部分,如下所示: https:// stackoverflow的.com /一個/285678分之2935410

這樣做的好處是,我剛剛添加了此日志以嘗試查找此HttpModule的行為不符合預期的原因,因此找出NLog為何“不起作用”的原因解決了該問題(這是一個非常嚴重的問題,因為HttpModule屬於應用程序的安全系統!)

我試圖結束這個問題,因為它具有誤導性,因為它根本不是NLog錯誤,但需要50票才能解決! 因此,我將其警告給像我這樣的人,他們在絕望中在StackOverflow中問“不是很明智”的問題:-(

我在web.config文件中放置了一個空白的Nlog config部分,這使得它不尋找nlog.config文件。 刪除后,我的日志記錄開始工作。

暫無
暫無

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

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