[英]What determines if a .NET app that targets the "AnyCpu" platform runs at 32 or 64 bits?
[英]What determines your USERPROFILE Environment Variable when launching a .NET app
在運行VMWARE / Windows Server 2008的測試服務器上啟動時,我有一個.net / C#應用程序,收到指向C:\\ windows \\ system32 \\ config \\ systemprofile的USERPROFILE環境變量,但其他應用程序似乎以類似的方式繼承了C:\\ Users \\ {username}的正確值。
稍作改動-在我的開發機器上本地運行時,應用程序會收到正確的值。 因此,我認為這是個人資料/注冊表問題,其中包含應用程序中設置的某種組合。
當您嘗試打開OpenFileDialog或類似文件時,問題就顯現出來了。 您會收到異常“位置不可用:C:\\ Windows \\ system32 \\ config \\ systemprofile \\ Desktop引用的位置不可用...”
有任何想法嗎?
更新:該應用程序是WPF通過WCF針對IIS運行Web服務。 在本地開發中,我正在使用IISExpress。 我發現在觸摸客戶端中的WCF服務后,該應用程序繼承了服務在其下運行的IIS AppPool的APPDATA和USERPROFILE。 如果我調整AppPool值以使用我的用戶帳戶而不是ApplicationPoolDefault並設置LoadUserProfile = true-一切正常。 顯然,這是一件壞事。 作為替代方案,我在WPF應用程序運行時將環境變量緩存起來,並且在它最初連接到WCF之后,我會重置這些變量。 這似乎可以解決問題,但是我想以更好的方式解決它,但我不知道什么因素在WCF和IIS服務中影響了此行為。
它可能必須處理Web應用程序在IIS中運行的帳戶。 您可以將其從默認的“網絡服務”帳戶更改為實際的用戶帳戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.