我希望我的 MVC3 Web 应用程序能够访问 %APPDATA%(例如C:\Users\MyUsername\AppData\Roaming
在 Windows 7 上),因为我在那里存储了配置文件。因此,我在 IIS 中使用用户“MyUsername”的身份创建了一个应用程序池,通过使用该帐户登录创建了该用户的配置文件,并打开了“加载用户配置文件”选项(默认情况下为 true)。模拟已关闭。
现在我遇到了 %APPDATA% (在 C# 中)的问题:
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 上使用相同的主要版本 7.5 的 IIS 遇到了这个问题。
我使用了与以前相同的过程:创建了一个新用户,以该用户身份登录以创建配置文件和 APPDATA 目录,然后添加具有此身份的应用程序池,最后将 Web 应用程序添加到此池中。
有任何想法吗?