2011-08-03 229 views
3

剛開始探索Azure,對於Web角色與工作角色的用途我還是有點困惑。在解決方案中,我正在使用移動應用程序(iPhone,Android,Windows等)將通過REST API訪問我們的服務器產品。因此,我們的服務確實沒有面向公衆的網站(如在網頁中)。沒有Web角色的Windows Azure項目?

這讓我覺得我並不需要一個Web角色,而是有一個或工作者角色監聽我們的http端點。我沿着這些線創建了一個原型。當從移動設備上我做了一個http post到端點,我沒有迴應。我在Azure日誌中看不到任何內容,表明我的工作者角色確實已啓動或正在運行並對其進行響應。

這是一個合適的方法嗎?有沒有什麼我需要做的設置代碼,因爲我沒有一個Web角色?我在另一個線程中讀到web角色在IIS中運行,但工作角色不在。

感謝您與我的軸承。我仍然在與Azure交手,因此在制定正確的問題時有點困難。

回答

3

你並不需要在你的天藍色部署Web角色。在您閱讀時,Web角色具有IIS,並且您的網站託管在其中。工作者角色基本上是一個沒有IIS的老式W2K8服務器。老實說,我沒有RDP到一個工人角色實例,所以我不能100%確定你沒有IIS或沒有。

但你不爲了揭露一個WCF服務需要一個Web角色。這裏有一個nice example(雖然背景顏色需要一些工作),告訴你如何做到這一點。

祝你好運!我希望這有幫助。

+2

從技術上講,工作角色確實安裝了IIS,但w3svc服務未啓動。 – smarx

+0

謝謝!一個獲得ServiceHost的好例子。 – onnoweb

2

添加到什麼大衛Hoerster說:你可容納上的任何角色類型25面向外部的端點(每個都有自己的端口號),每個端點是HTTP,HTTPS或TCP。使用Web角色和IIS,Web應用程序通常會抓取映射到端口80的端點。就您而言,您將在特定端口上創建自己的端點。您有責任創建ServiceHost(或用於託管服務的任何內容)並將其綁定到您的一個端點。爲此,您需要將每個端點顯式映射到特定的面向內部的端口,或者檢查端點的屬性以發現哪個端口已動態分配給它,供您綁定(可能這是您的問題你的原型代碼是否正在運行?)。

如果您正在尋找託管端點時IIS提供的好處,最好使用Web角色,因爲默認情況下Web角色啓用IIS會使您更容易執行此操作並且很容易從Visual Studio中將WCF服務添加到Web角色中)。

即使你是自託管的端點,你仍然可以使用一個Web角色,但現在你會揹着跑,尚未使用,IIS服務的額外內存的行李。

+0

是的,我傾向於擁有一個Web角色,並且關心一些基礎架構。我覺得很奇怪,對於雲計算平臺來說,這不僅僅是在那裏。與Google App Engine非常不同。 – onnoweb

+0

+1 - 你似乎對這些事情知道一兩件事。 :) –