我在IIS 6.0中托管Asp.Net网站
我们必须在web.config中重置会话超时
我的客户希望我只有在没有会话正在运行时才重置它(没有人在使用该网站)。
我们没有使用Membership,SessionState设置为InProc
我如何知道是否有人使用该网站或任何会话。
我无法在托管网站中的源代码或除web.config之外的任何其他文件中进行更改。
答案 0 :(得分:3)
我对PowerShell并不擅长,所以希望你可以查找正确的语法。但是......
一种选择是运行Powershell脚本并检查会话计数,如下所示:
更新:将“会话总数”更改为“会话有效”
write-host Getting performance counters ...
$perfCounterString = "\asp.net applications(__total__)\sessions active"
$counter = get-counter -counter $perfCounterString
$rawValue = $counter.CounterSamples[0].CookedValue
write-host Session Count is $rawValue
if( $rawValue -gt 0)
{
write-host Session are active - will not stop IIS
exit
}
write-host Stopping IIS
stop-service "IISAdmin"
# Set values
$webConfig = "d:\web.config"
$newTimeout = "20"
# Open file and change value
$doc = new-object System.Xml.XmlDocument
$doc.Load($webConfig)
$doc.SelectSingleNode("//sessionState").timeout = $newTimeout
$doc.Save($webConfig)
write-host Starting IIS
start-service "IISAdmin"
write-host Done!
将其作为“ChangeIIS.ps1”保存在桌面上。
现在Powershell不喜欢你只运行像.bat文件这样的脚本。出于安全原因,您必须授予对进程或用户的访问权限。请执行以下操作:
powershell
Set-ExecutionPolicy -scope process Bypass
sl <path to directory of .sp1 file>
。 sl
[set-location]与命令提示符中的cd
类似$ '.\ChangeIIS.ps1'
它将立即运行并重置该值。
以下是how I created the PowerShell script上我博客的链接 以更加循序渐进的方式
答案 1 :(得分:2)
检查您网站的IIS日志文件,并查看最后一次点击的时间(由实际用户提供,而不是搜索机器人)。
如果最后一次命中时间早于当前会话超时,则不存在活动会话。这就是你实际想要的,而不是计数。
无需编程或黑客攻击。
答案 2 :(得分:1)
如果有人正在使用网站,嘿会话超时不会被执行..
所以不用担心
(Timeout属性指定分配给应用程序的Session对象的超时时间,以分钟为单位。如果用户在超时期限内未刷新或请求页面,则会话结束。
) 会话与IIS http://msdn.microsoft.com/en-us/library/ms525473(v=vs.90).aspx
使用配置文件进行会话 http://msdn.microsoft.com/en-us/library/ms178586.aspx
答案 3 :(得分:1)
我认为这里的简单答案是“not possible”..你活着就学习了,看看 ASP.NET性能计数器的回答。我对这是怎么回事(如果它对您有用),并且它是否为您提供特定于应用程序的数据(与aggregate of all applications on the box对比?)。
即使是查看日志文件的建议也无法满足您的需求 - 当您查看日志文件时,您如何知道没有用户启动会话?
会话是浏览器的Cookie。因此,如果访问您网站的1页,我会离开您的网站并转到其他网站,然后回来(在您设置的超时值之前)?你会如何定义?在我离开您的网站时,您将看不到“任何”活动(无论您使用什么监视器),但这并不意味着我的会话“已过期”。
它甚至不必那么复杂 - 我访问您的网站,并开始阅读您的内容(不导航,不做任何可以测量/监控的事情)。
我想“目标”需要更清晰 - 就像你追求的是什么?重置的目标不是你想要实现的目标。
<强>更新强>
我知道您说无法修改源代码,因此您可以希望它实现Google Analytics。如果是这样,您可以查看您网站的实时活动。这至少会让你以某种微不足道的方式“某处”。 但同样,“魔力”基于 cookies (因此意味着它仍然受我上面提出的问题的影响)