我有一个 ASP.NET MVC3 应用程序。现在我想将用户数据保存在
C:\Users{AppPoolUserAccount}\AppData\Roaming\MyProgramm...
第一次致电时Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
我只得到“”(String.Empty)。
第二次通话时Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
返回正确的路径...
笔记:
该例程位于登录上下文中。我想将用户名和 sessionID 保存在 xml 文件中
防止两个用户通过一个用户帐户同时登录。
Why?
Environment.GetFolderPath
对于大多数 SpecialFolder 枚举值返回空字符串,因为未加载用于运行应用程序池的用户的用户配置文件。
您需要配置应用程序池以加载用户配置文件,方法是进入 IIS 管理器 > 应用程序池 > YourAppPool > 高级设置 > 加载用户配置文件,并将值设置为“true”,或者打开命令提示符并运行
appcmd set apppool "MyAppPool" -processModel.loadUserProfile:true
(通常您将在 C:\Windows\SysWOW64\inetsrv 中运行它)。
以下是一些包含更多数据的链接:
-
加载用户配置文件和 IIS7 http://blogs.iis.net/bills/archive/2006/10/18/loadUserProfile-and-IIS7-_2D00_-understanding-temporary-directory-failures.aspx(这个说加载配置文件是默认的,它
不是,但除此之外它是正确的。也许他们改变了默认设置
7 到 7.5 之间?)
- 应用程序池的进程模型设置 http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/processModel
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)