FlexLMの照会経験がある人はいますか? (最低限)特定のアプリケーションでライセンスが利用できるかどうかを知る必要があります。これまでは、どのプロセスが実行されているかを調べることでこれを実行しましたが、何とかFlexLMに問い合わせることができれば、より洗練されたものになります。C#:FlexLMライセンスマネージャの照会
-1
A
答えて
3
私はこれを最近実行しました。私はFlexLMライセンスサーバーを照会し、未処理/使用可能なライセンスを発見する必要がありました。私はこのための合理的なAPIを見つけられなかったので、代わりにlmutilを起動し、サーバーに照会するように依頼し、テキストによる結果を徹底的に解析しました。痛みはありましたが、うまくいきました。
lmutil.exeのコピーを見つけて、収集するデータに応じて-aまたは-iスイッチのいずれかを使用して実行します。 -cスイッチを使用して、照会したいサーバーとポートを渡します。はい、FlexLMデーモンが動作しているポートを知る必要があります。標準的なポートがありますが、そのポートでのみ実行するものはありません。
私は定期的にこれを実行するために必要な、と私はデーモンの数千人を照会するために必要なので、私は、アプリケーションからlmutilを運転した - のようなもの:
string portAtHost = "[email protected]";
string args = String.Format("lmstat -c {0} -a -i", portAtHost);
ProcessStartInfo info = new ProcessStartInfo(@"lmutil.exe", args);
info.WindowStyle = ProcessWindowStyle.Hidden;
info.UseShellExecute = false;
info.RedirectStandardOutput = true;
using (Process p = Process.Start(info))
{
string output = p.StandardOutput.ReadToEnd();
// standard output must be read first; wait max 5 minutes
if (p.WaitForExit(300000))
{
p.WaitForExit(); // per MSDN guidance: Process.WaitForExit Method
}
else
{
// kill the lmstat instance and move on
log.Warn("lmstat did not exit within timeout period; killing");
p.Kill();
p.WaitForExit(); // Process.Kill() is asynchronous; wait for forced quit
}
File.WriteAllText("c:\file.lmout", output);
}
を...そして、あなたは結果を解析する必要があります。探しているものに応じて、結果の行をスペース文字に分割するのと同じくらい単純なものになる可能性があります。
関連する問題
- 1. ユーザの機能使用制限を取得するFlexLMサーバの照会
- 2. Flexlmライセンスオプションファイルのエントリ
- 3. C#Linqインターフェイスでの照会
- 4. C#Windowsサービスの照会
- 5. C#スレッドプール同期の照会
- 6. C#でMariaDBデータベースを照会
- 7. QWINSTAをC#で照会
- 8. FlexLMでのLicenseManagerの使用
- 9. 照会の会話
- 10. Cの最高ソートキーを照会するためのDynamoDBの照会
- 11. Luaのユーザーデータ型をCから照会
- 12. C#からThunderbirdのSQLiteメッセージデータベースを照会
- 13. servicestackプロパティの照会名で照会
- 14. 照会協会:: CollectionProxy
- 15. 照会された別のオブジェクトを別の照会オブジェクトで照会
- 16. C#でXML Linqを照会します。
- 17. C#でNull可能なブールを照会
- 18. 照会するJsonResult Cに#統合テスト
- 19. 照会可能な照会データ数
- 20. ドキュメントライブラリの照会
- 21. DataGridTextColumnの照会
- 22. Mongoidハッシュフィールドの照会
- 23. JayDataでの照会
- 24. Iotデバイスの照会
- 25. Firestoreの照会サブコレクション
- 26. drupalの照会メソッド
- 27. XPATHステートメントの照会
- 28. SetColumnを照会
- 29. Neo4jソーシャルリレーションシップ照会
- 30. 照会カフカメッセージ
広告されたとおりに動作します。ありがとう! – Tim
'WaitForExit'コードはあなたが思っていることをしていません。 'p.StandardOutput.ReadToEnd()'は同期です。プロセスが既に終了するまで、実行は次の行に進まない。 10秒間スリープする独自の実行可能ファイルを作成することで試してみて、 'ReadToEnd'を10秒間待つことがわかります。また、 'ReadToEnd'の後に' p.HasExited'をチェックすると、それは常に真であることがわかります。 "リダイレクトされたStandardOutputストリームは、同期または非同期に読み取ることができます.Read、ReadLine、ReadToEndなどのメソッドは、同期読み取り操作を実行します..." – Glazed