2012-05-20 114 views
3

我想爲我的網站提供Web角色,但是我也希望該網站與我開發的另一個獨立應用程序進行通信。Windows Azure - 我可以在同一個虛擬機上運行Web角色和工作者角色嗎?

我覺得沒有必要擁有兩個虛擬機 - 我可以在與虛擬機角色相同的虛擬機上擁有我的工作者角色嗎?

什麼阻止我RDP在上傳我的應用程序?

這個角色特別需要高端口號的連接 - 我必須改變任何東西來允許這個嗎? (在VM aparf從Windows防火牆)

(到目前爲止天青使我的生命遠比justing的託管服務器支付更復雜)

回答

4

我會點你到其他SO答案我已經給上這個,但是...... Web角色和工作者角色只是Windows 2008服務器,有和沒有IIS運行。如果需要,可以使用Web角色運行所有內容,並且只需調整處理負載的實例數即可。或者...爲一些不想與您的Web角色CPU /內存/網絡競爭的任務創建一個工作者角色。

您可以通過tcp,http或https在任何端口上偵聽。您最多可以打開25個此類端口,並將流量引導至您想要的任何角色(並且將在該角色的所有實例中進行負載平衡)。

你不想RDP和安裝軟件。虛擬機在重新啓動後不會保留這些更改。這是Windows Azure的一個很酷的部分:在你的webrole.cs或workerrole.cs中,你可以設置任何你想要的,然後在Run()中,簡單地睡覺或啓動後臺任務(或其他)。如果在啓動過程中需要安裝某些東西(可能是MSI或註冊表)(需要提升權限),則可以使用啓動任務來執行任何您想要的操作。這些更改將在重新引導期間重新應用。儘管......如果你發現已經安裝的東西,你可以將它短路並跳過安裝(也就是說,有時候你的東西在重新啓動之間會保留下來 - 你不能指望這一點,但是你肯定可以把麪包屑放到知道事情已經安裝...)。

更是這樣回答你,那我貼:

+0

只需要說清楚我可以在任何端口上通過tcp,http或https進行監聽,我可以在自己的TCP應用程序級協議上監聽嗎? (你說TCP,所以我猜是這樣,但你也說HTTP,這表明它可能僅限於特定的知名應用程序級協議)。 – markmnl

+0

只要是tcp,http或https,你就可以啓動你想要的任何監聽器,無論是.net ServiceHost,Tomcat或Jetty等Java Web服務器,還是其他你想要的東西。 UDP不受支持。 –

+0

如果它支持tcp,那麼它必須支持http和https - 它們是tcp - 我不清楚你給ServiceHost和Java Web服務器技術的例子 - 這是我自己的TCP協議與現有的Web協議無關 - 我使用TCP berkely套接字 - 將工作嗎? – markmnl

1

是的,你可以工作者角色轉換爲Windows服務,然後將其與部署您的Web角色。

WebRole也可以定義一個RoleEntryPoint,因此您可以在啓動時使用它來安裝和關閉Windows服務。其餘的,比如通過防火牆打開端口,修改IIS等最好寫成命令行腳本或.NET代碼,並在實例啓動時執行。通過這種方式,您可以通過輕鬆增加實例數量來擴展服務。

相關問題