2013-04-16 146 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文件?你能擴大答案嗎?謝謝 –