0
我想出瞭如何創建一個內部公開的WCF服務,但絕對不知道如何從另一個Web角色或Web應用程序使用此服務?如何使用Azure中的內部端點。
我遇到了一些例子,回答這個確切的情況,但解釋更多信息的鏈接似乎都已死亡。
任何人都可以提供幫助嗎?
我想出瞭如何創建一個內部公開的WCF服務,但絕對不知道如何從另一個Web角色或Web應用程序使用此服務?如何使用Azure中的內部端點。
我遇到了一些例子,回答這個確切的情況,但解釋更多信息的鏈接似乎都已死亡。
任何人都可以提供幫助嗎?
讓我們想象一下這樣的場景:
你必須與內部端點輔助角色承載的WCF服務。它實現了一個簡單的計算器(ADD,Mult ...等)的合約ICalculator。
另一方面,你有一個Webform應用程序時按鈕點擊你只是發送一些數據進行計算。
這裏是消耗此WebService的代碼:
protected void Button1_Click(object sender, EventArgs e)
{
var factory = new ChannelFactory<WorkerHost.ICalculator>(new NetTcpBinding(SecurityMode.None));
var channel = factory.CreateChannel(GetRandomEndpoint());
Label3.Text =channel.Add (Convert.ToInt32(TextBox1.Text) , Convert.ToInt32(TextBox2.Text)).ToString();
}
和getRanDomeEndpoint()的代碼是
private EndpointAddress GetRandomEndpoint()
{
var endpoints= RoleEnvironment.Roles["WorkerHost"].Instances.Select(i=>i.InstanceEndpoints["CalculatorService"].IPEndpoint).ToArray();
var r = new Random(DateTime.Now.Millisecond);
return new EndpointAddress(string.Format("net.tcp://{0}/Calculate", endpoints[r.Next(endpoints.Count() - 1)]));
}
我已上傳的服務在Azure上看看這裏
謝謝你一個容易遵循的例子。內部tcp服務必須通過工作角色暴露出來嗎?或者他們可以通過網絡角色暴露? – 2015-04-05 01:36:48
它們用於角色間通信,因此您可以通過Web或工作角色公開它們 對於大多數情況下,它們用於工作者角色,因爲Web角色已經託管在IIS中 – Coder1409 2015-04-06 12:50:36