2010-10-15 65 views
2

在我的測試機器上運行(Windows XP,IIS5.1)以下代碼在C#.NET WebService(.SVC)進程標識(使用machine.config中指定用戶)IIS6 WebService下的Environment.GetFolderPath(Environment.SpecialFolder.ApplicationFolder)返回的路徑錯誤

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 

正確返回

c:\Documents and Settings\myUserName\Application Data 

然而,在(終端服務)Windows 2003的計算機上運行IIS6和執行相同的代碼,但現在用ApplicationPool到指定相同的進程標識該方法返回:

  1. 名爲myUsername所屬的組IIS_WPG(甚至試圖聯繫)
  2. 到Environment.UserName呼叫:

    c:\Documents and Settings\Default User\Application Data 
    

    東西Win2003的/ IIS6的機器上運行,而我已籤正確返回myUserName

  3. 調用Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);也返回了「默認用戶」的路徑,同樣與DesktopDirectory
  4. 登錄名爲myUsername並確保C:\ Documents和Settings \ MyUserName輸入存在
  5. 運行完全相同的代碼在Windows .NET應用程序2003盒子,這工作並返回正確的路徑。

我很困惑,它只發生在IIS6下運行時。這幾乎就像它認爲呼叫來自網絡服務本地系統用戶,它不檢查運行應用程序池的標識。

順便說一句,當我看着procmon中,看是從它沒有這樣的問題讀取和寫入C中的Web服務稱爲C++應用程序:\ Documents和Settings \ MyUserName輸入\ ApplicatonData,它似乎並不有問題,也許它會以不同的方式建立路徑。

我開始認爲這可能是.NET中的一個bug?

謝謝。

Tom Deloford

+2

這絕對不是一個錯誤。 – leppie 2010-10-15 15:22:17

+0

有用的評論 – 2010-10-15 15:23:18

+0

你是對的它是由設計。 – 2010-10-17 13:52:01

回答

1

已解決。顯然這是'按設計',因爲IIS6不會加載用戶配置文件設置。

微軟建議我先升級到IIS7或先調用LoadUserProfile,我不知道是什麼讓他們從IIS5.1中改變了這個功能。

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/890fa85a-b11a-4fbe-a333-cbe69abd72a7

反正教訓,不承擔功能並沒有被刪除,並總是以相同的應用服務器測試,即使惹惱了IT部門!

+0

它不是IIS問題。我在客戶端機器上的一個Windows窗體應用程序C#windows Vista SP2上面臨同樣的問題 – Ahmed 2015-09-11 00:43:04

-1

是的。這不是一個錯誤。 下哪個用戶正在運行應用程序池?

我們分了這一點:

本試驗機使用IIS託管服務或內置Web服務器? 如果您使用內置的Web服務器,它將在您的用戶下運行。 如果您使用IIS,哪一個是池用戶?

如果是網絡服務或本地系統,過程的用戶之一的環境下運行,而事實上,調用:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 

是OK。

您應該更改池的用戶(並回收池)以查看更改。

+1

正如我在使用應用程序池設置進程所有者的問題中所述。在taskmanager中,我可以看到該進程正在該用戶下運行,並且正如問題中所述,調用Envornment.UserName時會返回正確的用戶名,但Envorment.GetFolderPath不會,它必須是TS/IIS6或.NET中的錯誤或者也許只有當所有3個一起運行。 如前所述,IIS6不是在Web服務器中構建的。 – 2010-10-17 13:36:51

+0

在MSDN上,我剛剛被建議升級到IIS7,因爲IIS6不會加載用戶配置文件設置。 感謝您的幫助。 – 2010-10-17 13:49:57

相關問題