c# - Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 返回 String.Empty

标签 c# asp.net asp.net-mvc-3 environment

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

C:\Users{AppPoolUserAccount}\AppData\Roaming\MyProgramm...

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

注意: 该例程位于登录上下文中。我想将用户名和 session ID 保存在 xml 文件中 以防止两个用户通过一个用户帐户同时登录。

为什么?

最佳答案

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

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

appcmd set apppool "MyAppPool" -processModel.loadUserProfile:true

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

这里有几个包含更多数据的链接:

关于c# - Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 返回 String.Empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9428945/

相关文章:

c# - 尝试将我的模型转换为 IEnumerable<Model>

c# - c# 中的 Equals 是按引用还是按值进行比较?

jQuery .html() 函数在 IE 11 中不起作用

c# - 如何在MVC中实现多个下拉列表

asp.net-mvc - MVC ModelMetaData 属性和格式化日期的问题

c# - 如何将包含不同数据类型的 JSON 数组反序列化为单个对象

c# - 从上一个位置恢复滚动时列表框跳到顶部

c# - 为希望在 JSP+Tomcat 中构建的 ASP.NET/C# 开发人员预订推荐信?

javascript - 如何将动态 ID 传递给 JQuery 中的函数

asp.net - 小数点后不允许超过 5 位数字。在 javascript "OnKeyUp"上?