今天與同事在查找一個 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.

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


留言列表 (1)

發表留言
【 X 關閉 】

【PIXNET 痞客邦】國外旅遊調查
您是我們挑選到的讀者!

填完問卷將有機會獲得心動好禮哦(注意:關閉此視窗將不再出現)

立即填寫取消