.net – Windows Azure上的AspPDF和AspJPEG
我最近开始将.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 Controller将在BIN文件夹中查找.cmd文件.您可以在记事本中创建.cmd,然后更改扩展名.这是.cmd文件的内容. chcp 1252>NUL regsvr32 /s .libraryasppdf64.dll regsvr32 /s .libraryaspjpeg64.dll exit /b 0 我们使用参数/ s调用regsvr32工具,这确保响应是静默的,即没有会混淆结构控制器的弹出窗口.这很重要,因为我浪费了大量时间,想知道为什么部署过程暂停在初始化阶段……添加/ s参数解决了这个问题! 在我的情况下,我将DLL放在一个名为library的文件夹中,但您可以将它们放在任何您喜欢的地方,前提是它们在.cmd文件中被正确引用.还要确保为Visual Studio中的启动命令中引用的任何DLL设置以下文件属性: 构建行动:内容 复制到输出目录:始终 注册DLL的这个额外过程为部署过程增加了几乎可以忽略的时间.另一个特定于AspPDF的点是使用正确的DLL版本的重要性. Persits发出32位和64位dll,Azure VM在64位环境中运行,因此在上述过程中注册asppdf64.dll非常重要,注册32位dll会在应用程序中引发模糊错误.幸运的是,您无需为64位版本的AspPDF购买单独的许可证. 我希望这将有助于其他面临类似问题的人将Comp组件(如AspPDF)迁移到Azure. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2008-r2 – 远程桌面服务登录历史记录
- windows – 检查运行时静态库或dll使用的是什么
- 在现有2008R2中添加Windows Server 2012 DC而不更新架构
- 如何在Windows上确定是否安装了C/C++编译器
- windows – 如何从桌面图标通过Cygwin使用GUI启动GNU Octav
- 更改在R Windows GUI中运行脚本的Cntrl R快捷方式
- 由于图形处理单元配置不支持Windows手机模拟器(Mac上的Wind
- batch-file – 如何在Windows 10上使用带有CSCRIPT的ANSI转
- Windows 10 子系统 Ubuntu 中安装 FastAdmin
- Windows下XDebug 手工配置与使用说明
- xaml – Windows通用响应式设计重新定位
- 如何从Windows中的pfx文件中删除CA根证书?
- 后台进程 – BITS仍然是一个很好的后台更新技术吗
- Windows API一日一练 24 DrawText函数
- get-event-store – Windows Azure上的事件存储无
- 配备Hyper-V的智能UPS 2200和Windows 2008 R2
- Windows – 作为网络服务的交互式命令提示符
- windows-server-2008 – 如何最大程度地更改活动
- Microsoft MPEG-4编解码器媒体文件解析远程代码执
- windows-phone-7 – Windows phone 7选择ListBox