首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)返回String.Empty

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

Stack Overflow用户
提问于 2012-02-24 10:14:07
回答 3查看 9.6K关注 0票数 4

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

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

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

注意:例程在登录上下文中。我希望将用户名和sessionID保存在xml-文件中,以防止两个用户通过一个用户帐户同时登录。

为什么?

EN

回答 3

Stack Overflow用户

发布于 2012-07-18 19:16:59

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

您需要配置应用程序池来加载用户配置文件,方法是进入IIS >应用程序池> YourAppPool >高级设置> load用户配置文件,或者打开命令提示符并运行

代码语言:javascript
复制
appcmd set apppool "MyAppPool" -processModel.loadUserProfile:true

(通常您将在C:\Windows\SysWOW64 64\inetsrv中运行此操作)。

下面是一些有更多数据的链接:

  • loadUserProfile和IIS7 (这里说加载配置文件是默认的,它不是,但否则是正确的)。也许他们把默认值更改为7到7.5?)
  • 应用程序池的过程模型设置
票数 7
EN

Stack Overflow用户

发布于 2016-09-29 10:34:13

如果文件夹不存在,Environment.GetFolderPath通过设计返回一个空字符串

来自MSDN

Environment.GetFolderPath方法(Environment.SpecialFolder)

返回值类型: System.String

如果计算机上存在指定的系统特殊文件夹,则为该文件夹的路径;否则为空字符串("")。 如果操作系统没有创建文件夹,现有文件夹已被删除,或者文件夹是虚拟目录,如“我的计算机”,该文件夹与物理路径不对应,则该文件夹在物理上不存在。

票数 2
EN

Stack Overflow用户

发布于 2012-02-24 10:41:39

如果您想共享数据(例如,当前日志记录的用户),请使用以下代码:

在global.asax中,当应用程序启动时:

代码语言:javascript
复制
 var users = new List<Guid>();
 Application["loggedUsers"] = users;

然后,如果用户正在登录,请键入以下内容:

代码语言:javascript
复制
var users = (List<Guid>)Application["loggedUsers"];
users.Add(currentlyLoggingOnUserId);
Application["loggedUsers"] = users;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9428945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档