今天與同事在查找一個 ASP.NET 1.0 應用程式無法將資訊寫入 Event log.

它是再安裝在 Windows Server 2003 (IIS6)

一開始很自然的檢查 ApplicationPool 的設定, 是 Network Service

 

那... 為什麼會出問題呢? 一直找不出為什麼?

後來同事寫了一個網頁顯示目前執行的 WindowsIdentity 的 Name 為誰

發是是 IUSR_<computer> ?? 那會按內 ??

不過這也提供了一個很重要的線索

再仔細檢查一下 Web.config, 發現 <identity impersonate="true"/> , 對 … 就是它了

把它改為 <identity impersonate="false"/> 即會是用 Network Service 的身份在執行

可以用下列的表格快速檢查一下ASP.NET 及 IIS 的設定是否有問題

Impersonation

Anonymous Access

WindowsIdentity.GetCurrent().Name

User.Identity.Name

Enabled

Enabled

IUSR_<computer>

Empty string

Enabled

Disabled

ISV\Jacky

ISV\Jacky

Disabled

Enabled

NT Authority\Network Service

Empty string

Disabled

Disabled

NT Authority\Network Service

ISV\Jacky

Enjoy.

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 anISV 的頭像
    anISV

    慢步在雲端..

    anISV 發表在 痞客邦 留言(1) 人氣()