今天與同事在查找一個 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.
全站熱搜
留言列表