2014-04-09 56 views
0

我遇到以下問題。與Azure workerrole的RDP連接導致AzureWebrole

我創建了以下cloudservice安裝程序。

Azureproject 
    Roles 
    AruzeWebRole 
    AzureWorkerRole 

該webrole有兩個小實例,workerrole一extrasmall。

當我部署此我們蔚藍的環境中,我看到正確的三個實例:

Name     Status  Role    Size 
--------------------------------------------------------------------- 
AzureWorkerRole_IN_0 Running  AzureWorkerRole Extra Small 
AruzeWebRole_IN_0  Running  AruzeWebRole  Small 
AruzeWebRole_IN_1  Running  AruzeWebRole  Small 

,一切工作正常。 但是,當我打開一個RDP連接到我的兩個Web實例和第三個到workerrole實例的rdp連接時,我被踢出了一個web實例。 當我仔細觀察時,在向workerrole打開RDP會話時,只需創建一個RDP到Webrole實例。

重新部署後,有可能我在另一個web實例中。

如果我將workerrole的大小從XS更改爲M,它仍然會將RDP打開爲我的一個卷軸。

我不知道我在做什麼錯。 我的工作人員是否真的部署在我的一個webrole實例上,或者是Azure只是在我身邊玩弄。

如果有人有類似的情況,或一些很好的建議,檢查了這一點。那樣就好了。

謝謝!

回答

1

我可以說這是很奇怪的行爲。我有大致相同的配置,它工作得很好。 只是想一想。

RDP在Azure中的工作方式是: 有一個公共ip或yourapplication.cloudapp.net端點。您的所有實例都在負載平衡器後面。爲了能夠RDP任何你的實例,在serviceDefinition文件中應該有這樣的行。

<Imports> 
    <Import moduleName="RemoteAccess" /> 
    <Import moduleName="RemoteForwarder" /> 
</Imports> 

在你的情況下,這些行在你的webrole實例下。這意味着,當您嘗試連接到yourapplication.cloudapp.net端點並且RemoreForwarder會根據存儲在RDP連接文件中的信息將您轉發到特定實例。這樣來檢查這一點。轉到Azure門戶併爲您的webrole實例和您的workerrole實例下載rdp連接文件。用記事本打開這些文件,看看你自己:相同的終端節點和向remoteforwader說要連接到哪個實例的節。

有一件事我忘了告訴你。如果您想手動連接到您的實例(不使用來自Azure門戶的RDP連接文件),意味着您省略了實例cookie,很可能您將連接到您的一個webrole實例,可能連接到實例0。

+0

感謝您的信息; 我總是通過門戶網站的RDP文件進行連接。 在這些文件中loadbalanceInfo正確。 但我在serviceDefinition中沒有那些導入。 稍後會嘗試添加。 :-) – bruno

+1

@bruno所以如果你沒有這些行,很可能你的請求會碰到負載均衡器,負載均衡器會隨機將你重定向到不同的實例。你很幸運,首先被重定向到2個不同的例子,而不幸的是 - 再次向他們。 – Max

0

你爲什麼要將RDP轉換爲Web角色,然後將RDP轉換爲Web角色中的輔助角色?只需將RDP直接從本地計算機轉移到工作者角色即可。從門戶網站,您可以從實例列表中選擇工作者角色實例,然後選擇連接。

+0

我從本地機器打開3個RDP到實例... 與workerrole的RDP連接將我從其他RDP連接之一踢開,因爲它指向同一臺機器。 – bruno