Windows Azure 上的 AspPDF 和 AspJPEG

2023-11-26

我最近开始将 .NET 应用程序迁移到 Windows Azure 云服务。我们的应用程序严重依赖于许多 COM 类组件,其中包括 AspPDF(用于 PDF 生成和操作)和 AspJPEG(用于调整图像大小)。在典型的非云 IIS 设置中,我只需在我们的生产服务器上注册 DLL(使用 regsvr32),一切都会好起来的!

在 Azure 中,过程略有不同,我将回答我自己的问题,以帮助那些面临类似挑战的人。此方法可用于作为部署过程的一部分需要在服务器上注册的任何 dll。


为了在 Windows Azure 云服务上注册 AspPDF 和 AspJPEG 组件,必须将 DLL 注册过程合并到部署例程中。当 Azure 解压应用程序时,它必须触发命令来注册 DLL,该命令必须保留在所有 VM 上,以确保这些依赖项在云环境中一致工作。

为了实现这一点,我们可以指示在目标服务器上执行命令文件。此任务在 ServiceDefinition.csdef 文件中定义如下:

<Startup>
  <Task commandLine="RegisterPersits.cmd" executionContext="elevated" taskType="simple" />
</Startup>

提升的执行上下文确保必须在服务上线之前执行此过程。 Azure Fabric 控制器将在 BIN 文件夹中查找 .cmd 文件。您可以在记事本中创建 .cmd,然后更改扩展名。这是 .cmd 文件的内容。

chcp 1252>NUL
regsvr32 /s .\library\asppdf64.dll
regsvr32 /s .\library\aspjpeg64.dll
exit /b 0

我们使用参数 /s 调用 regsvr32 工具,这确保响应是静默的,即没有会混淆结构控制器的弹出窗口。这很重要,因为我浪费了大量时间想知道为什么部署过程挂在初始化阶段......添加 /s 参数解决了这个问题!

就我而言,我将 DLL 放置在名为“库”的文件夹中,但您可以将它们放置在您喜欢的任何位置,只要它们在 .cmd 文件中正确引用即可。还要确保为 Visual Studio 中的启动命令中引用的任何 DLL 设置以下文件属性:

构建动作: Content

复制到输出目录: Always

这个注册 DLL 的额外过程给部署过程增加的时间几乎可以忽略不计。 AspPDF 特有的另一点是使用正确的 DLL 版本的重要性。 Persits 发布 32 位和 64 位 dll,Azure VM 在 64 位环境中运行,因此在上述过程中注册 asppdf64.dll 很重要,注册 32 位 dll 会在应用程序中引发模糊错误。幸运的是,您不需要为 64 位版本的 AspPDF 购买单独的许可证。

我希望这能够帮助其他面临类似问题的人将 com 类组件(例如 AspPDF)迁移到 Azure。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows Azure 上的 AspPDF 和 AspJPEG 的相关文章

随机推荐

  • Fortran 中何处放置“隐式无”

    我需要放implicit none在每个函数和子程序中 或者将其放在包含这些函数和子例程的模块的开头就足够了吗 或者将其放在使用这些模块的程序的开头就足够了吗 通过观察别人的工作代码 implicit none包含在所有这些地方 我不确定这
  • React Hooks 的 Keydown/up 事件无法正常工作

    我正在尝试为我正在开发的游戏创建基于箭头的键盘控件 当然 我想跟上 React 的最新动态 所以我想创建一个函数组件并使用钩子 我创建了一个JSFiddle对于我的越野车组件 它几乎按预期工作 除非我同时按下很多箭头键 然后好像有一些key
  • 在 tidyr/dplyr 中添加零计数行的正确习惯用法

    假设我有一些如下所示的计数数据 library tidyr library dplyr X raw lt data frame x as factor c A A A B B B y as factor c i ii ii i i i z
  • Java 和无符号值

    我正在解析 DatagramSocket 中的无符号位 我总共有 24 位 或 3 个字节 进来 它们是 1 个无符号 8 位整数 后跟一个 16 位有符号整数 但是java从来不会将除了有符号字节之外的任何东西存储到字节 字节数组中 当j
  • 无法刷新hangfire仪表板中的统计信息

    我的网站在同一台服务器上使用hangfire 运行 Hangfire 仪表板在本地运行良好 但是 当我访问http localhost hangfire recurring在服务器计算机上 它报告此错误 Unable to refresh
  • bash文本搜索:查找一个文件的内容是否存在于另一个文件中[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 假设我们有两个文件 a txt 和 b txt 每个文件都有多行文本 如何编写一个shell脚本来检查b txt中是否存在a txt的所有内容 感谢各位的提示 我没有注意到 q
  • 将 3 字节立体声 WAV 文件转换为 numpy 数组

    我收到了一个连续水下录音的大型 WAV 文件 我想将其转换为 numpy 数组进行分析 我正在努力做到这一点 到目前为止我有 import numpy as np import scipy as sp import wave as wv i
  • 从 VB.NET 编码过渡到 C# 的好练习吗?

    中级 高级 VB NET Web 程序员应该做哪些练习来掌握 C 语法 我想一些很好的例子是 运行全部 C 语法的算法或项目练习 参考资料 VB NET 程序员应注意的主要语法差异列表 我认为最好的锻炼就是为自己创造一些东西 通过这种方式
  • 是否有任何 Python IDE 可以像 R 一样让您运行选定的代码? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我认为这对于初学者来说是一
  • 在 Swift 中,为什么子类方法不能覆盖超类中协议扩展提供的方法

    我知道这个问题的标题很令人困惑 但奇怪的行为在下面的示例中进行了解释 protocol Protocol func method gt String extension Protocol func method gt String retu
  • BadImageFormatException 调试以 x64 模式运行的网站

    这个论坛里有很多关于这个的问题BadImageFormatException 但没有一个完全符合我的问题 我有一个包含多个项目的解决方案 当我在 调试 或 发布 任何 CPU 中运行时 一切正常 然而 当我切换到 x64 并运行我的 ASP
  • 运行 AspectJ 会导致 NoSuchMethodError: Aspect.aspectOf

    我有一个非常简单的 AspectJ 方面 使用 AspectJ 它只打印出一条日志消息 我的目标是在我的 Android 应用程序中提供建议代码 现在 只要我的应用程序源代码中有方面类本身 这个方面就可以完美地工作 一旦我将方面移动到不同的
  • 如何测试类型是否是具有非类型参数的模板的特化?

    我想知道是否有任何解决方案来查找类型是否是采用非类型参数而不指定每种类型的模板的特化 例如 如果有一个这样的类 template
  • jQuery 中的类名更改事件

    当元素类更改时 有没有办法在 jQuery 中触发事件 例子 img class selected into img class selected newclass 触发事件 And img class selected into img
  • pyodbc 和 mySQL

    我无法使用 pyodbc 连接到 mySQl 数据库 这是我的脚本的片段 import pyodbc import csv cnxn pyodbc connect DRIVER MySQL ODBC 3 51 Driver SERVER l
  • MacOS“配置:错误:无法运行 C 编译的程序”

    我对 MacOS 环境相当陌生 之前在编译 C 脚本时遇到了一些问题 我遇到了以下问题 fatal error stdio h No such file or directory include
  • Angular 4 动画不适用于 Safari iOS 9.3

    我目前正在所有可能的浏览器中测试我的应用程序 我发现角度动画在 Safari iOS 9 3 中的行为与预期不符 下班后 花了几个小时试图解决这个问题 我来寻求帮助 提前致谢 我的代码如下 包 json dependencies angul
  • Spring 3.1 自动装配在自定义约束验证器中不起作用

    我在自定义约束验证器内自动装配 bean 时遇到问题 约束验证器实例不是使用 Spring 的 LocalValidatorFactoryBean 给出的 JSR 303 提供程序是 hibernate validator 4 2 0 Fi
  • 为什么是“using namespace std;”被认为是不好的做法?

    我听说using namespace std 是不好的做法 我应该使用std cout and std cin直接代替 为什么是这样 声明与中的某些内容同名的变量是否存在风险 std命名空间 考虑两个名为 Foo 和 Bar 的库 usin
  • Windows Azure 上的 AspPDF 和 AspJPEG

    我最近开始将 NET 应用程序迁移到 Windows Azure 云服务 我们的应用程序严重依赖于许多 COM 类组件 其中包括 AspPDF 用于 PDF 生成和操作 和 AspJPEG 用于调整图像大小 在典型的非云 IIS 设置中 我