今天與同事在查找一個 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 發表在 痞客邦 留言(1) 人氣()