2013-04-16 174 views
5

我正在尝试将一台网站托管在IIS服务器上的Azure网站上。我正在使用COM对象,但我不确定是否可以注册此对象?我发现一些文章谈论上传DLL并在启动时注册它,但文章似乎缺少。这可能吗?Azure COM对象

回答

2

您无法在Azure网站中注册COM对象。您需要升级到Web角色才能执行此操作。 com对象的注册可以在启动脚本中进行。

+0

你是如何做到这一点的?我正在查看仪表板,但没有看到任何有关Web角色的信息。 – thecaptain0220

+1

Web角色是Cloud Services的一部分。您将需要在Visual Studio中创建一个Cloud Service(WebROle),添加它下面的现有项目,COM对象的仪器启动脚本注册,并确保没有其他任何事情需要修复/更改。此外,期望WebRoles将至少运行2台服务器,因此状态和会话需要与此兼容。 – Igorek

4

我在Azure上注册了遗留COM组件的确切问题。我这里记录我的方法:

AspPDF and AspJPEG on Windows Azure

Igorek是正确的,你需要使用一个Web角色来实现这一目标。上述解决方案基于具有启动脚本的单个Web角色来运行regsvr32作为启动任务。

总而言之,要实现这一点基本上有两个部分。首先创建一个批处理文件来运行regsvr32命令:

chcp 1252>NUL 
regsvr32 /s .\library\my-com-class.dll 
exit /b 0 

然后在您ServiceDefinition.csdef中文件中定义启动任务:

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

这将触发命令文件上部署运行。

+0

您在Project结构中的哪个位置放置了cmd文件?你能扩大答案吗?谢谢 –