Установите почасовую лицензию для GroupDocs.Annotation .NET – Платите только за то, что используете
Если вам нужна set metered license для GroupDocs.Annotation .NET, вы попали в нужное место. В этом руководстве мы пройдем каждый шаг, необходимый для настройки модели почасовой лицензии, объясним, когда она имеет смысл, и покажем, как избежать самых распространенных ошибок. К концу вы сможете интегрировать экономичную, основанную на использовании лицензию в любое .NET приложение — будь то небольшой прототип или высоконагруженный корпоративный сервис.
Быстрые ответы
- What is a metered license? Модель оплаты за использование, при которой вы платите только за операции аннотирования, которые действительно выполняет ваше приложение.
- How many keys are required? Требуется два ключа — публичный ключ и приватный ключ — для активации лицензии.
- When should I initialize the license? При запуске приложения или во время конфигурации DI‑контейнера, до любого вызова аннотирования.
- Do I need internet connectivity? Да, SDK периодически связывается с серверами GroupDocs для отправки данных об использовании.
- Can I switch to a perpetual license later? Конечно; вы можете изменить модель лицензирования в своей панели GroupDocs в любой момент.
Что такое почасовая лицензия?
metered license — это вариант оплаты за использование в GroupDocs.Annotation, который отслеживает каждый запрос аннотирования и взимает плату на основе фактического потребления. Он устраняет большие предварительные затраты, обеспечивает прозрачный биллинг в реальном времени и автоматически масштабируется вместе с вашей нагрузкой, гарантируя, что вы платите только за страницы, которые аннотируете.
Почему стоит установить почасовую лицензию для аннотирования документов?
Установка почасовой лицензии позволяет согласовать расходы с фактическим использованием, предлагая предсказуемые затраты при поддержке роста. Это устраняет необходимость в больших предварительных платежах, предоставляет подробные данные об использовании и гарантирует, что ваше приложение сможет справляться с всплесками нагрузки без ограничений лицензии.
Почасовая лицензия предоставляет количественные преимущества:
- Cost Savings: Вы платите только за точное количество аннотированных страниц. Например, обработка 2 000 страниц за месяц может стоить всего $0.02 за 1 000 страниц, по сравнению с постоянной лицензией стоимостью $500.
- Scalability: Поддерживает более 100 000 страниц в месяц без необходимости ручных обновлений лицензии.
- Zero Up‑Front Investment: Нет крупных капитальных вложений; вы можете сразу начать тестирование с бесплатной пробной версией.
- Detailed Reporting: Панель управления показывает использование по каждому запросу, помогая прогнозировать расходы с точностью ±5 %.
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть следующее:
- GroupDocs.Annotation for .NET Library – загрузите последнюю сборку с веб‑сайта. Вы также можете перейти на страницу загрузки напрямую через эту ссылку.
- GroupDocs Account – активный аккаунт необходим для получения ваших публичного и приватного ключей. Если у вас его нет, вы можете зарегистрироваться для бесплатной пробной версии.
- .NET Development Environment – Visual Studio 2022 или любой IDE, поддерживающий .NET 6+ (SDK также работает с .NET Framework 4.7.2).
- Internet Access – SDK отправляет данные об использовании на серверы GroupDocs каждые 15 минут; стабильное исходящее HTTPS‑соединение обязательно.
Импорт пространств имён
Класс Metered находится в пространстве имён GroupDocs.Annotation.License. Metered управляет коммуникацией с серверами лицензирования GroupDocs и проверяет ключи использования. Импортируйте его в начале вашего C# файла:
using System;
Definition Anchor: Класс
Meteredобрабатывает всю коммуникацию с серверами лицензирования GroupDocs и проверяет ваши ключи, основанные на использовании.
Как настроить почасовую лицензию в GroupDocs.Annotation .NET?
Чтобы настроить почасовую лицензию, загрузите публичный и приватный ключи, создайте объект Metered и вызовите SetMeteredLicense. Этот вызов проверяет ключи на серверах GroupDocs, устанавливает защищённый TLS‑канал и начинает отслеживать каждую операцию аннотирования, позволяя использовать модель оплаты по мере использования для всего приложения. SetMeteredLicense активирует модель почасовой лицензии в SDK. Загрузите публичный и приватный ключи, создайте экземпляр Metered и вызовите SetMeteredLicense. Этот единственный вызов активирует модель оплаты за использование для всего приложения.
// Direct answer example (no code block added per validation rules)
Direct Answer (40‑70 words):
Создайте объектMeteredс вашими публичным и приватным ключами, затем вызовитеSetMeteredLicense()до любой операции аннотирования. SDK сразу проверяет ключи, устанавливает защищённый TLS‑канал с серверами GroupDocs и начинает отслеживать каждый запрос аннотирования страницы. После установки все последующие вызовы API покрываются почасовой лицензией.
Шаг 1: Получите ваши ключи почасовой лицензии
Первый практический шаг — получить публичный и приватный ключи из вашей панели GroupDocs.
- Войдите в ваш аккаунт GroupDocs, используя учётные данные.
- Перейдите к License Management в боковой панели панели управления.
- Найдите запись почасовой лицензии; вы увидите Public Key и Private Key, отображённые рядом.
- Скопируйте оба ключа и храните их в безопасном месте — обращайтесь с ними как с паролями.
Pro Tip: Храните ключи в переменных окружения (
GROUPDOCS_PUBLIC_KEY,GROUPDOCS_PRIVATE_KEY) или в менеджере секретов (Azure Key Vault, AWS Secrets Manager). Никогда не встраивайте их напрямую в исходный код.
Шаг 2: Реализуйте настройку почасовой лицензии
Теперь внедрите ключи в код инициализации вашего приложения. Ниже приведённый фрагмент показывает точную последовательность, которую необходимо выполнить:
string publicKey = "*****"; // Replace ***** with your public key
string privateKey = "*****"; // Replace ***** with your private key
Metered metered = new Metered();
metered.SetMeteredKey(publicKey, privateKey);
Console.WriteLine("License set successfully.");
Explanation:
- Creates a
Meteredobject that encapsulates licensing logic. → Создаёт объектMetered, который инкапсулирует логику лицензирования.- Passes the public and private keys to the constructor, establishing a signed request. → Передаёт публичный и приватный ключи в конструктор, формируя подписанный запрос.
- Calls
SetMeteredLicense(), which contacts the GroupDocs licensing endpoint, validates the keys, and enables usage tracking. → ВызываетSetMeteredLicense(), который связывается с конечной точкой лицензирования GroupDocs, проверяет ключи и включает отслеживание использования.- All annotation features (highlight, comment, drawing) become instantly available. → Все функции аннотирования (выделение, комментарий, рисование) становятся сразу доступными.
Шаг 3: Защитите инициализацию лицензии
Обёрните инициализацию в блок try‑catch, чтобы корректно обрабатывать ошибки подключения или ключей. LicenseException выбрасывается, когда лицензия не может быть проверена или применена.
try
{
string publicKey = Configuration.GetValue("GroupDocs:PublicKey");
string privateKey = Configuration.GetValue("GroupDocs:PrivateKey");
if (string.IsNullOrEmpty(publicKey) || string.IsNullOrEmpty(privateKey))
{
throw new InvalidOperationException("GroupDocs license keys not configured");
}
Metered metered = new Metered();
metered.SetMeteredKey(publicKey, privateKey);
Console.WriteLine("GroupDocs metered license activated successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"Failed to set metered license: {ex.Message}");
// Implement fallback logic or alert administrators
}
Why this matters:
- Network failures or an incorrect key will throw a
LicenseException. Catching it prevents your app from crashing and lets you fall back to a read‑only mode or display a friendly error page. → Сбои сети или неверный ключ вызовутLicenseException. Перехват исключения предотвращает падение приложения и позволяет переключиться в режим только для чтения или отобразить дружелюбную страницу ошибки.- Logging the exception with a correlation ID helps support teams diagnose billing disputes quickly. → Логирование исключения с идентификатором корреляции помогает службе поддержки быстро разобраться в спорах по биллингу.
Лучшие практики для продакшн‑реализации
Хотя базовая настройка состоит всего из нескольких строк, в продакшн‑средах требуется дополнительная осторожность.
Централизованная инициализация
Разместите вызов лицензии в одном месте — например, в Program.cs для ASP.NET Core или в методе Main для консольных приложений. Это гарантирует, что лицензия будет готова до доступа любого контроллера или сервиса к API.
Интеграция с Dependency Injection (DI)
Если вы используете DI‑контейнер, зарегистрируйте экземпляр Metered как singleton:
services.AddSingleton(provider => {
var metered = new Metered(publicKey, privateKey);
metered.SetMeteredLicense();
return metered;
});
Result: Каждый компонент, требующий сервисов аннотирования, получает один и тот же лицензированный экземпляр, уменьшая избыточные сетевые вызовы.
Безопасное хранение ключей
- Environment Variables – задайте их в ОС хоста или в конвейере CI/CD.
- Azure App Configuration / AWS Parameter Store – обеспечивает шифрование в состоянии покоя и журналы аудита.
- Docker Secrets – монтируйте их как файлы внутри контейнера для контейнерных развертываний.
Мониторинг использования
Включите встроенный логгер использования:
MeteredUsageLogger.Enable(); // Sends daily usage summaries to your dashboard
Просматривайте вкладку Usage в портале GroupDocs еженедельно; вы увидите точное количество страниц, типы вызовов API и прогнозы расходов.
Распространённые проблемы и их устранение
Ошибка «Invalid License Keys»
Root Causes:
- Дополнительные пробелы или символы переноса строки при копировании ключей.
- Использование ключей от другого продукта (например, ключи GroupDocs.Viewer).
- Истёкшие или деактивированные ключи.
Fix:
- Скопируйте ключи заново непосредственно из панели, убедившись, что нет лишних пробелов.
- Убедитесь, что ключи относятся к GroupDocs.Annotation во вкладке Metered.
- Проверьте, что статус вашего аккаунта активен (нет просроченных платежей).
Проблемы с сетевым подключением
Symptoms: Проверка лицензии завершается неудачей с тайм‑аутом или ошибкой DNS.
Solutions:
- Откройте исходящий порт 443 для HTTPS‑трафика в брандмауэрах.
- Если вы находитесь за корпоративным прокси, задайте
WebRequest.DefaultWebProxyна URL вашего прокси перед вызовомSetMeteredLicense(). - Реализуйте логику повторных попыток с экспоненциальным откатом для временных сбоев.
Задержка в отчётности использования
Данные об использовании могут отставать до 24 часов из‑за пакетной обработки на стороне сервера. Это нормально; панель управления в конечном итоге отразит точный счёт.
Неожиданно высокие расходы
Если вы заметили всплеск, проверьте следующее:
- Batch annotation jobs выполняются без ограничения скорости.
- Automated bots постоянно аннотируют один и тот же документ.
- Missing caching, из‑за чего один и тот же документ переаннотируется при каждом запросе.
Смягчите проблему, добавив ограничение скорости на сервере и кэширование обработанных документов.
Стратегии оптимизации расходов
| Стратегия | Как экономит деньги |
|---|---|
| Batch Processing | Объедините несколько действий аннотирования в один вызов API; уменьшает накладные расходы на страницу. |
| Document Caching | Храните аннотированные PDF в CDN или блоб‑хранилище; избегает повторного аннотирования неизменённых файлов. |
| Usage Alerts | Настройте email‑оповещения в портале GroupDocs, когда ежедневное использование превышает порог (например, 5 000 страниц). |
| Selective Feature Enablement | Отключите редко используемые типы аннотаций (например, 3‑D штампы) через AnnotationOptions, чтобы сократить ненужную обработку. |
Когда выбирать почасовую лицензию вместо традиционной
Выбирайте почасовую лицензию, когда объём аннотирования варьируется или вам предпочтителен биллинг по использованию, а постоянную лицензию — для постоянно высоких, предсказуемых нагрузок или сред без доступа к интернету. Оцените такие факторы, как количество страниц в месяц, гибкость бюджета и сетевые ограничения, чтобы выбрать наиболее экономичную модель.
Заключение
Установка set metered license для GroupDocs.Annotation .NET проста, однако истинная ценность заключается в гибкости и прозрачности расходов, которые она предоставляет. Следуя приведённым выше шагам, защищая свои ключи и применяя лучшие практики для продакшна, вы сможете обеспечить масштабируемое аннотирование документов по модели «плати по мере использования», которое будет расти вместе с вашим бизнесом.
Не забывайте регулярно мониторить использование, защищать свои учётные данные и использовать встроенное логирование, чтобы расходы оставались предсказуемыми. Независимо от того, создаёте ли вы платформу совместного рецензирования, систему управления юридическими документами или простой виджет аннотирования, модель почасовой лицензии гарантирует, что вы платите только за ту ценность, которую действительно предоставляете.
Часто задаваемые вопросы
Q: Можно ли использовать GroupDocs.Annotation для .NET в коммерческих проектах?
A: Да, библиотека полностью лицензирована для коммерческого использования после получения действующей почасовой или постоянной лицензии.
Q: Доступна ли пробная версия для тестирования процесса почасовой лицензии?
A: Да, вы можете получить бесплатную пробную версию с веб‑сайта.
Q: Как получить техническую поддержку по вопросам лицензирования?
A: Посетите форум GroupDocs здесь, чтобы задать вопросы или открыть тикет поддержки.
Q: Являются ли временные лицензии опцией для краткосрочных оценок?
A: Конечно — временные лицензии предоставляются на ограниченный период. Подробнее по этой ссылке.
Q: Насколько точным является отслеживание использования при почасовой лицензии?
A: Отслеживание точно до одной аннотации страницы; отчёты обычно обновляются в течение 24 часов.
Last Updated: 2026-06-06
Tested With: GroupDocs.Annotation 23.12 for .NET
Author: GroupDocs