我希望我的MVC3 Web应用程序能够访问%APPDATA%(例如,在Windows 7上的C:\Users\MyUsername\AppData\Roaming
),因为我在那里存储配置文件。因此,我在IIS中创建了一个具有用户"MyUsername"身份的应用程序池,并通过使用该帐户登录来创建了该用户的配置文件,并打开了选项"加载用户配置文件"(默认情况下为true)。模拟用户被关闭。
现在我遇到了一个问题,就是在C#中使用%APPDATA%:
appdataDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
问题是所得结果为c:\windows\system32\inetsrv
,而不是C:\Users\MyUsername\AppData\Roaming
。
更新: 更确切地说,上述C#代码返回一个空字符串,因此Path.GetFullPath(Path.Combine(appdataDir, "MyAppName"))
会在我的应用程序名称前面添加当前路径,从而导致c:\windows\system32\inetsrv\MyAppName
。
我知道我以前在Windows Server 2008 R2上使用相同的Web应用程序使其工作,现在我在我的Windows 7上使用相同的IIS主版本7.5时出现了这个问题。
我使用与以前相同的过程:创建一个新用户,登录该用户创建配置文件和APPDATA目录,然后使用此身份添加应用程序池,并最终将Web应用程序添加到该池中。
有什么想法吗?