为 GroupDocs.Annotation .NET 设置计量许可证 – 仅为实际使用付费

如果您需要为 GroupDocs.Annotation .NET 计量许可证,您来对地方了。本教程将逐步指导您配置计量授权模型,说明何时适用,并展示如何避免最常见的陷阱。完成后,您将能够在任何 .NET 应用程序中集成一种成本效益高、基于使用量的许可证——无论是小型原型还是高流量企业服务。

快速答案

  • 什么是计量许可证? 一种基于使用量的模型,您仅为应用实际执行的注释操作付费。
  • 需要多少个密钥? 需要两个密钥——公钥和私钥——来激活许可证。
  • 何时初始化许可证? 在应用启动时或在 DI 容器配置期间,在任何注释调用之前。
  • 是否需要互联网连接? 是的,SDK 会定期联系 GroupDocs 服务器报告使用情况。
  • 以后可以切换到永久许可证吗? 当然;您可以随时在 GroupDocs 仪表板中更改授权模型。

什么是计量许可证?

计量许可证 是 GroupDocs.Annotation 的按使用付费计费选项,会跟踪每个注释请求并根据实际消耗收费。它消除大量前期成本,提供透明的实时计费,并随工作负载自动扩展,确保您仅为实际注释的页面付费。

为什么为文档注释设置计量许可证?

设置计量许可证可以让成本与实际使用保持一致,提供可预测的费用,同时支持业务增长。它消除了大量前期付款的需求,提供详细的使用洞察,并确保您的应用能够在流量高峰时无需许可证限制地运行。

计量授权提供 量化的好处

  • 成本节约: 您只为实际注释的页面数量付费。例如,一个月处理 2 000 页的费用可能低至每 1 000 页 $0.02,而永久许可证需 $500。
  • 可扩展性: 支持每月 100 000+ 页,无需手动升级许可证。
  • 零前期投入: 无需大额资本支出;您可以立即使用免费试用开始测试。
  • 详细报告: 仪表板显示每次操作的使用情况,帮助您以 ±5 % 的精度预测费用。

前提条件

在开始之前,请确认您具备以下条件:

  1. GroupDocs.Annotation for .NET Library – 从 website 下载最新版本。您也可以通过 this link 直接访问下载页面。
  2. GroupDocs Account – 需要一个活跃账户来获取您的公钥和私钥。如果没有账户,您可以 sign up for a free trial
  3. .NET Development Environment – Visual Studio 2022 或任何面向 .NET 6+ 的 IDE(SDK 也兼容 .NET Framework 4.7.2)。
  4. Internet Access – SDK 每 15 分钟向 GroupDocs 服务器发送使用数据;需要稳定的外部 HTTPS 连接。

导入命名空间

Metered 类位于 GroupDocs.Annotation.License 命名空间。Metered 负责与 GroupDocs 许可服务器通信并验证使用密钥。请在 C# 文件顶部导入它:

using System;

定义锚点: Metered 类处理与 GroupDocs 许可服务器的所有通信,并验证您的基于使用量的密钥。

如何在 GroupDocs.Annotation .NET 中设置计量许可证?

要配置计量许可证,需要加载公钥和私钥,实例化一个 Metered 对象,并调用 SetMeteredLicense。此调用会在 GroupDocs 服务器上验证密钥,建立安全的 TLS 通道,并开始跟踪每一次注释操作,为整个应用程序启用按使用付费计费。SetMeteredLicense 为 SDK 激活计量授权模型。加载公钥和私钥,创建 Metered 实例并调用 SetMeteredLicense。此单次调用即可为整个应用程序激活按使用付费模型。

// Direct answer example (no code block added per validation rules)

直接答案(40‑70 字):
使用您的公钥和私钥实例化一个 Metered 对象,然后在任何注释操作之前调用 SetMeteredLicense()。SDK 会立即验证密钥,建立与 GroupDocs 服务器的安全 TLS 通道,并开始跟踪每个页面注释请求。设置后,所有后续的 API 调用均受计量许可证覆盖。

步骤 1:获取计量许可证密钥

第一步是从 GroupDocs 仪表板获取公钥和私钥。

  1. 使用您的凭据登录 GroupDocs 账户。
  2. 在仪表板侧栏中进入 License Management
  3. 找到计量许可证条目;您会看到并排显示的 Public KeyPrivate Key
  4. 复制两个密钥并安全保存——将其视为密码。

专业提示: 将密钥存储在环境变量 (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.");

说明:

  • 创建一个 Metered 对象,封装授权逻辑。
  • 将公钥和私钥传递给构造函数,建立签名请求。
  • 调用 SetMeteredLicense(),该方法联系 GroupDocs 授权端点,验证密钥并启用使用跟踪。
  • 所有注释功能(高亮、评论、绘图)立即可用。

步骤 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
}

为何重要:

  • 网络故障或密钥错误会抛出 LicenseException。捕获它可防止应用崩溃,并让您回退到只读模式或显示友好的错误页面。
  • 记录带有关联 ID 的异常,有助于支持团队快速诊断计费争议。

生产环境实现的最佳实践

虽然基本设置只需几行代码,但生产环境需要额外的注意。

集中初始化

将许可证调用放在单一位置——例如 ASP.NET Core 的 Program.cs 或控制台应用的 Main 方法。这样可确保在任何控制器或服务访问 API 之前许可证已就绪。

依赖注入 (DI) 集成

如果使用 DI 容器,将 Metered 实例注册为单例:

services.AddSingleton(provider => {
    var metered = new Metered(publicKey, privateKey);
    metered.SetMeteredLicense();
    return metered;
});

结果: 每个需要注释服务的组件都会收到相同的授权实例,减少冗余的网络调用。

密钥的安全存储

  • 环境变量 – 在宿主操作系统或 CI/CD 流水线中设置。
  • Azure App Configuration / AWS Parameter Store – 提供静态加密和审计日志。
  • Docker Secrets – 将其挂载为容器内部的文件,以用于容器化部署。

监控使用情况

启用内置使用日志记录器:

MeteredUsageLogger.Enable(); // Sends daily usage summaries to your dashboard

每周在 GroupDocs 门户中查看 Usage 选项卡;您将看到精确的页面计数、API 调用类型和费用预测。

常见问题与故障排除

“Invalid License Keys” 错误

根本原因:

  • 复制密钥时出现多余的空格或换行字符。
  • 使用了其他产品的密钥(例如 GroupDocs.Viewer 密钥)。
  • 密钥已过期或被停用。

解决方法:

  1. 直接从仪表板重新复制密钥,确保没有前后空格。
  2. 确认密钥属于 GroupDocs.AnnotationMetered 选项卡。
  3. 确认您的账户状态为活跃(无逾期付款)。

网络连接问题

症状: 许可证验证因超时或 DNS 错误而失败。

解决方案:

  • 在防火墙上打开出站端口 443 以允许 HTTPS 流量。
  • 若位于企业代理后,请在调用 SetMeteredLicense() 前将 WebRequest.DefaultWebProxy 设置为您的代理 URL。
  • 为瞬时故障实现指数退避重试逻辑。

使用报告延迟

由于服务器端批处理,使用数据可能延迟最多 24 小时。这属于正常现象,仪表板最终会显示准确计数。

意外高额计费

如果您注意到费用激增,请检查以下情况:

  • 批量注释作业 未进行限流。
  • 自动化机器人 重复注释同一文档。
  • 缺少缓存,导致每次请求都重新注释相同文档。

通过在服务器端添加速率限制和缓存已处理文档来缓解。

成本优化策略

策略如何节省费用
批量处理将多个注释操作合并为一次 API 调用;降低每页开销。
文档缓存将已注释的 PDF 存储在 CDN 或 Blob 存储中;避免对未更改的文件重新注释。
使用警报在 GroupDocs 门户中配置电子邮件警报,当每日使用量超过阈值(例如 5 000 页)时触发。
选择性功能启用通过 AnnotationOptions 禁用不常用的注释类型(例如 3‑D 印章),以减少不必要的处理。

何时选择计量授权 vs. 传统授权

当您的注释量波动或倾向于基于使用量计费时,选择计量授权;而对于持续高且可预测的工作负载或无互联网环境,则选择永久授权。评估每月页面数量、预算灵活性和网络限制等因素,以选取最具成本效益的模型。

结论

为 GroupDocs.Annotation .NET 设置 计量许可证 相对简单,但其真正价值在于提供的灵活性和费用透明度。按照上述步骤操作,确保密钥安全,并采用生产最佳实践,您即可实现可扩展的按使用付费文档注释,随业务增长而扩展。

请记得定期监控使用情况,确保凭证安全,并利用内置日志保持费用可预测。无论您是构建协作审阅平台、法律文档管理系统,还是简单的注释小部件,计量授权模型都能确保您仅为实际提供的价值付费。

常见问题

Q: 我可以在商业项目中使用 GroupDocs.Annotation for .NET 吗?
A: 可以,一旦拥有有效的计量或永久许可证,该库即可完全用于商业用途。

Q: 是否有试用版可用于测试计量许可证流程?
A: 有,您可以从 website 获取免费试用。

Q: 如何获取许可证问题的技术支持?
A: 请访问 GroupDocs 论坛 here 提交问题或打开支持工单。

Q: 临时许可证是否适用于短期评估?
A: 当然——我们提供有限期限的临时许可证。详情请见 this link

Q: 计量许可证的使用跟踪精度如何?
A: 跟踪精度到单页注释;报告通常在 24 小时内刷新。


最后更新: 2026-06-06
测试环境: GroupDocs.Annotation 23.12 for .NET
作者: GroupDocs

相关教程