gpt4 book ai didi

c# - 从应用程序中更改 Web.Config SessionTimeout 值

转载 作者:行者123 更新时间:2023-11-30 21:14:32 25 4
gpt4 key购买 nike

我正在尝试找出一种动态更改 session 超时的方法,因为我的客户要求这是一个他们可以轻松更改的值(就好像它是数据库事务一样)。这是我要更改的值的截断版本:

<appSettings>
<add key="SessionTimeout" value="20"/>
</appsettings>

我正在使用 C#/.Net 3.5 处理所有这些。

郑重声明,我知道更改 web.config 文件会导致应用程序重新启动。我要做的是让程序管理员能够即时更改超时。例如,如果他们要求人们填写的其中一张表格花费的时间超过 20 分钟,他们需要将时间延长到半小时,或者如果他们出于其他原因希望缩短时间。由于我们想让用户(包括管理员)远离代码文件,目标是将其创建为网站管理页面的一部分。

问题是,我不知道该怎么做,或者它是否可能(更不用说好主意了)。我在谷歌上四处奔波,但一无所获。

有没有办法进行这些更改,甚至有可能即时动态更改超时(覆盖 web.config 的内容)?

感谢您的帮助。

最佳答案

在运行时编辑您的 web.config 是可能的,但正如您已经指出的那样,我不确定这是否是个好主意。您可以通过多种方式实际编辑此文件,但是您必须确保运行应用程序的帐户具有适当的文件系统权限,以便能够写入应用程序目录(例如编辑和编辑)保存 web.config 文件)。如果您处于集群环境中,我强烈建议您不要走这条路(尽管仍然可能)。

一旦您的权限等被整理出来,下面是一个快速的方法。

public void EditMyWebConfig(string appSettingsKey, string appSettingsValue, string         filePath)
{
XmlDocument xml = new XmlDocument();
//Load current config into memory
xml.Load(filePath);
//Overwrite config
using(FileStream fs = new FileStream(filePath, FileMode.Create,FileAccess.ReadWrite))
{
//select appSetting you want to edit
XmlNode xmlN = xml.SelectSingleNode("//configuration/appSettings/add[@key = '" + appSettingsKey + "']");
//assign new value
xmlN.Attributes["value"].Value = appSettingsValue;
//Create new web config
xml.Save(fs);
}
}

我希望这会有所帮助,但我认为您应该只选择较长的 session 时间会更容易,并且在将来造成的问题更少。

关于c# - 从应用程序中更改 Web.Config SessionTimeout 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6207715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com