我有一个asp.net mvc3应用程序。现在,我想将用户数据保存在
C:\Users{AppPoolUserAccount}\AppData\Roaming\MyProgramm...
在Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)的第一个调用中,我只得到"“(String.Empty)。在第二次呼叫时,Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)返回正确的路径..。
注意:例程在登录上下文中。我希望将用户名和sessionID保存在xml-文件中,以防止两个用户通过一个用户帐户同时登录。
为什么?
发布于 2012-07-18 19:16:59
Environment.GetFolderPath返回大部分SpecialFolder枚举值的空字符串,因为没有加载用于运行应用程序池的用户配置文件。
您需要配置应用程序池来加载用户配置文件,方法是进入IIS >应用程序池> YourAppPool >高级设置> load用户配置文件,或者打开命令提示符并运行
appcmd set apppool "MyAppPool" -processModel.loadUserProfile:true(通常您将在C:\Windows\SysWOW64 64\inetsrv中运行此操作)。
下面是一些有更多数据的链接:
发布于 2016-09-29 10:34:13
如果文件夹不存在,Environment.GetFolderPath通过设计返回一个空字符串。
来自MSDN
Environment.GetFolderPath方法(Environment.SpecialFolder)
返回值类型: System.String
如果计算机上存在指定的系统特殊文件夹,则为该文件夹的路径;否则为空字符串("")。 如果操作系统没有创建文件夹,现有文件夹已被删除,或者文件夹是虚拟目录,如“我的计算机”,该文件夹与物理路径不对应,则该文件夹在物理上不存在。
发布于 2012-02-24 10:41:39
如果您想共享数据(例如,当前日志记录的用户),请使用以下代码:
在global.asax中,当应用程序启动时:
var users = new List<Guid>();
Application["loggedUsers"] = users;然后,如果用户正在登录,请键入以下内容:
var users = (List<Guid>)Application["loggedUsers"];
users.Add(currentlyLoggingOnUserId);
Application["loggedUsers"] = users;https://stackoverflow.com/questions/9428945
复制相似问题