2010-10-15 69 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

相关问题