我有一个 Windows 服务,它公开了一些要通过 IDispatch Invoke 调用的 COM 函数。有不同的客户端(Windows 应用程序)可以随时调用任何这些功能。我需要在 Windows 服务中引入一个不需要对客户端进行任何更改的更改(我无法修改它们)。我需要区分(如 ID)哪个应用程序正在调用函数。注意:我不需要知道确切的客户端应用程序,只需区分当前会话中的不同客户端就足够了。
例如:假设有两个客户端 C1 和 C2。当 C1 在 Windows 服务(WS)中调用函数 F1 时,WS 知道每次(在当前会话期间)客户端 X1(注意我说 X1,因为 WS 不需要确切知道 C1 调用了 F1,只需分配C1 的 ID,如 PID~进程 ID~)。因此,现在 C3 调用 F2,WS 知道客户端 X2(与 X1 不同)调用了 F2。然后,C1 调用 FX(WS 公开的任何 COM 函数)WS 可以区分 X1 调用 FX,而不是客户端 Xn(如 X2)调用 FX。
有没有什么可以帮助我在不需要客户 ID 参数的情况下实现这种情况?