2010-07-08 3 views
2

У меня есть проект, над которым я работал, и требует, чтобы я получил идентификатор ЦП компьютера для создания лицензии на программное обеспечение и проверил его против зарегистрированных зарегистрированных лицензий.Как получить доступ к WMI в проектах SQL CLR

Итак, сказал и сделал, что сделал 2 программы, чтобы это произошло. Затем мне нужно реализовать это решение в моем проекте CLR.

Я замечаю, что я не могу добавить ссылку System.Management в SQL Project.

Поэтому я не могу получить доступ к указанным элементам управления для получения идентификатора CPU, как это было в других моих программах .NET.

Пожалуйста, ив искали решение для этого в течение недели, и любые подсказки действительно помогли бы. Ive видел людей, включая System.Management.dll при создании сборки SQL, но я действительно не могу понять, как это делается.

ответ

2

Лучше всего, чтобы создать веб-сервис, который использует материал WMI, и возвращает идентификатор процессора.

Альтернативно, если вы хотите перейти на темную сторону, вы могли бы посмотреть на xp_cmdshel и OLE Automation Objects для доступа к внешним ресурсам.

+0

Только проблема с использованием веб-службы заключается в том, что вам нужно знать ее путь. Моя проблема: НАЙТИ этот путь, т. Е. С учетом виртуального пути, такого как «/ utilities», получить свой физический путь. К сожалению ... вам нужен WMI для этого, или для System.Management.dll необходимо добавить бесконечную цепочку зависимостей, которые в конечном итоге не могут быть добавлены в SQL Server. Таким образом, жестко закодированный адрес веб-службы не может быть и речи, когда весь смысл использования WMI заключается в том, чтобы избежать использования жестко закодированных путей для поиска виртуального пути. Это относится только к моей конкретной проблеме, а не к вопросу, на который отвечает этот ответ. – Triynko

0

Я думаю, вам нужно включить параметр «небезопасно» в проекте CLR, чтобы добавить ссылку на System.Management.dll. Затем System.Management.dll потребуется добавить в базу данных с помощью CREATE ASSEMBLY.

+0

System.Management.dll не может быть добавлен без зависимостей. Самая первая ошибка, которую вы получите: сборка «system.configuration.install» не найдена в каталоге SQL ». И когда вы попытаетесь добавить это, вы получите« Assembly »system.runtime.serialization 'was not найденных в каталоге SQL »и т. д. Все они поставляются с предупреждением: сборка Microsoft .NET Framework« X », которую вы регистрируете, не полностью протестирована в среде размещения SQL Server и не поддерживается. В будущем, если вы обновляете или обслуживаете эту сборку или .NET Framework, ваша программа интеграции CLR может перестать работать. – Triynko

Смежные вопросы