我最近升级到PHP 5.3,从那以后,我得到(零星的)错误信息,表明Apache(或可能是更清洁的会话文件)没有权限存储会话的文件夹。 这是随机发生的,不能用精确的步骤复制,这让我猜测它是会话更清晰。 任何人有这种错误的经验吗? 错误消息(在session_start()行上触发)是: ps_files_cleanup_dir:opendir(/ var / lib / php5)失败:权限被拒绝。 ls -ltr在会话目录中给出: drwx-wx-wt 2 root root 4096 2010-05-25 12:39 php5 在这个目录中,我可以看到由www-data拥有的会话文件,这是我的Apache,并且应用程序确实工作正常。 这让我想知道在哪个用户会话GC运行?
我想更好地理解Windows会话(TS会话和login会话)是如何工作的(当前在XP中),所以也许我的整个问题或者我想要做的事情是不可能的。 我正在运行一个Windows服务(在XP中),它运行在会话0中,我试图使用WTSQueryUserToken()获取附加到这个会话的用户名。 现在,在会话0中有几个用户名: SYSTEM , theuser (login用户), NETWORK SERVICE , LOCAL SERVICE 。 当我使用WTSQueryUserToken()我得到“用户”(这是活动会议),但我想获得我的服务(这是系统)的用户名。 这是可能的还是我只是把它全错了?
我正在为Windows(WDM驱动程序,32位)构build设备驱动程序,并且需要检测terminal会话的创build和closures。 我知道如何获得调用者进程的会话ID(带有ProcessSessionInformation标志的ZwQueryInformationProcess )。 我也拦截graphics驱动程序加载/卸载到会话中的事件(通过拦截与ZwSetSystemInformation / ZwSetSystemInformation )。 我希望在会话创build/closures事件之后,会调用带有SystemCreateSession / SystemDeleteSession标志的SystemCreateSession 。 但不幸的是,这并没有发生。 到目前为止,我没有find创build/closures会话的好迹象。
我在各个实验室里收集了很多Windows平台。 从XP到最新的一切。 我有一个简单的C#/。NET应用程序运行在用户login和注销。 我需要区分真正的Consolelogin和RDP会话。 我在用 System.Diagnostics.Process.GetCurrentProcess().SessionId 得到一个sessionId但我没有看到任何说“你在控制台上”或“你在RDP会话中”。 有这样的事吗?
我在当前login的用户会话中使用API函数GetExitCodeProcess来监视进程的退出代码。 此过程在另一个会话(SYSTEM)中运行。 该函数立即返回一个退出代码0.我不认为这是正确的。 任何人都可以告诉如果这个函数总是失败/如果进程已经开始在不同的会话中给出错误的结果? 我的VB6代码是这样的,如果有人感兴趣: Public Function GetProcExitCode(ByVal uProcID As Long) As Long Const STILL_ACTIVE = &H103& Const PROCESS_QUERY_INFORMATION = &H400& Dim lProcHnd As Long lProcHnd = OpenProcess(PROCESS_QUERY_INFORMATION, True, uProcID) Dim lTick As Long lTick = GetTickCount Dim lRet& lRet = 0 'Wait for process end Do GetExitCodeProcess lProcHnd, lRet Loop While lRet = STILL_ACTIVE […]
如果我使用LsaEnumerateLogonSessions()列举会话给我一个会话LUID列表,然后LsaGetLogonSessionData()以获取每个会话的详细信息(如MSDN上所述),那么在Windows XP上它的行为完全如我所愿,显示一个login的会话为我加上一些login服务。 在Windows 7上运行相同的程序为我显示两个login会话,再加上服务会话。 对我来说这两个会话显示为相同的用户和相同的login时间。 我正在运行一些升级的进程,所以我认为可能是这样,但是当我closures这些进程甚至重新启动后,第二个进程仍然在那里。 那么有没有人知道为什么每个真正的login用户有第二个会话? 你怎么知道哪一个是“真正的”? 谢谢 蒂姆
我至less要区分当我的软件作为批处理作业( LOGON32_LOGON_BATCH )运行时被交互式运行( LOGON32_LOGON_INTERACTIVE )的情况。
我想更好地理解Windows会话是如何工作的,所以如果我在这个问题上有一些奇怪的错误,请告诉我。 我使用LsaEnumerateLogonSessions()获取系统中所有已login的会话。 现在我有代表login的LUID,如果我理解正确,它代表login的用户或像SYSTEM一样构build它的用户。 现在,如果用户X启动一个进程,Windows将为该进程提供一个代表X的令牌。 有没有办法(在Windows服务)从LUID获取用户的令牌? 我知道我可以从stream程处理中获得,但这不是我想要的。
有没有任何命令或批处理脚本,使我只能得到一个用户的会话ID? 我知道Query Session ,但它显示比我需要更多的信息。
Windows Server AppFabriccaching可以在两个或多个不同的Web应用程序之间共享一个会话吗? 我怎样才能做到这一点?