Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)返回String.Empty

Mat*_*yer 4 c# asp.net environment asp.net-mvc-3

我有一个asp.net mvc3应用程序.现在我想保存用户数据

C:\用户{AppPoolUserAccount} \应用程序数据\漫游\ MyProgramm ...

在第一次调用时Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)我只得到""(String.Empty).第二次通话Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)返回正确的路径...

注意:例程位于Login-Context中.我想在xml文件中保存用户名和sessionID,以防止两个用户通过一个用户帐户同时登录.

为什么?

gra*_*esd 6

Environment.GetFolderPath 返回大多数SpecialFolder枚举值的空字符串,因为未加载用于运行应用程序池的用户的用户配置文件.

您需要配置应用程序池以加载用户配置文件,方法是进入IIS管理器>应用程序池> YourAppPool>高级设置>加载用户配置文件,并将值设置为"true"或打开命令提示符并运行

appcmd set apppool "MyAppPool" -processModel.loadUserProfile:true
Run Code Online (Sandbox Code Playgroud)

(通常你会在C:\ Windows\SysWOW64\inetsrv中运行它).

以下是一些包含更多数据的链接: