思傑下有一種方式可以讓我的應用程序調用Citrix主機來查明我的應用程序目前正在運行多少個副本?我們想限制在我們的許可證,我們需要有一種方法來驗證它的代碼。如何在Citrix上查找我的應用程序的併發使用數量?
謝謝 - 戴夫
思傑下有一種方式可以讓我的應用程序調用Citrix主機來查明我的應用程序目前正在運行多少個副本?我們想限制在我們的許可證,我們需要有一種方法來驗證它的代碼。如何在Citrix上查找我的應用程序的併發使用數量?
謝謝 - 戴夫
通過思傑最接近您可以使用Powershell SDK並調用Get-XASessionProcess來獲取進程列表。這種方法的問題是你需要成爲一個Citrix管理員,這是一個相當完整的方法。
如果我想實現一個簡單的併發限制許可實施我想看看兩個選項:
地方實現一個簡單的Web服務是我的應用程序會談,以獲得許可證。
創建一個簡單的Windows服務,跟蹤進程以維護應用程序併發實例的數量。超過配置的許可證計數時,可以在全局名稱空間的共享內存部分中設置標誌。然後在您的應用程序中,您可以在啓動時檢查該標誌,並在設置時立即退出。
您可以使用WMI跟蹤進程,例如,
http://weblogs.asp.net/whaggard/archive/2006/02/11/438006.aspx
沒有,思傑的XenApp(這是他們最知名的產品,可能你問的是一個)不提供可用於應用程序許可檢查任何API或服務。
真可惜 - 不是我所期待的答案。哦,謝謝。 –
後續問題。每個Citrix會話都是獨立的VM嗎?或者他們都在一個Windows會話中運行? –
「Citrix」會話是常規的Windows用戶會話。只有訪問方法不同(HDX又名ICA與RDP或控制檯)。當然還有管理工具。 –
謝謝。這是否意味着(我對Citrix一無所知)每個用戶/會話都是獨立運行的Windows會話,因此會運行我的應用的獨特會話? –
是的,每個用戶都可以獲得獨立於其他用戶會話的會話,並且是的,每個用戶都有自己的應用程序副本,這些副本在其會話中運行時不會由您的應用的其他實例默認顯示。但是,可以在全局名稱空間中創建所有會話都可以看到的對象。互斥體,命名管道,共享內存部分。 – donovan