Я разрабатываю подключаемый модуль для стороннего приложения, которое требует использования System.LicenseProvider.Использование LicenseManager с FlexLM
Файл лицензии сам по себе является сгенерированным FlexLM.
поэтому у меня есть:
[LicenseProvider(typeof(LicFileLicenseProvider))]
public class MyLicensedModule
{
protected System.ComponentModel.License thisLicense;
protected ModuleFlexFeature thisfeature;
public bool LicenseCheck()
{
bool isLicensed = LicenseManager.IsLicensed(typeof(ModuleFlexFeature)); //returns TRUE
if(thisFeature==null) thisFeature = new ModuleFlexFeature();
thisLicense = LicenseManager.Validate(typeof(ModuleFlexFeature),thisFeature);
//no thrown exception
return (thisLicense != null); //thisLicense is always null
}
public void Dispose()
{
if (thisLicense!=null)
{
thisLicense.Dispose();
thisLicense = null;
}
}
}
(+ другие несоответствующие методы), с помощью:
internal class ModuleFlexFeature
{
public ModuleFlexFeature() { }
public string FeatureName { get { return "myFlexLMFeature"; } }
public float FeatureVersion { get { return 2016.0f; } }
}
Используя LMTOOLS от Flexera, я могу получить статус сервера лицензий (я бегу на 7507 @mypcname, используется 0 из 1 лицензии для myFlexLMFeature).
Тогда я могу добавить 7507 @ mypcname в дополнительных серверах, которые будут использоваться приложением третьей стороны, но:
- isLicensed возвращает истинный (ожидаемый)
- LicenseManager.Validate() не выбрасывает исключение (ожидается)
- thisLicense равна нулю (не ожидается)
Я пытался использовать
LicenseManager.IsValid(typeof(ModuleFlexFeature),new ModuleFlexFeature(), out thisLicense);
но оба имеют схожие результаты (код, кажется, работает, но thisLicense равно нулю)
ли я делаю что-то неправильно? является LicenseManager совместимым с FlexLM? или есть ошибка в стороннем приложении, которое запускает мой подключаемый модуль (каким-то образом не подключается к серверу лицензий должным образом)? Как проверить?
Благодаря