實例的大小將僅確定將爲您的實例保留的帶寬(XS是5 Mbps,更多信息here)。什麼你需要做的僅僅是DefaultConnectionLimit改爲超過2:
<system.net>
<connectionManagement>
<add address="*" maxconnection="12"/>
</connectionManagement>
</system.net>
這一點,如果你想允許這個Web應用程序添加到您的web.config。以下內容添加到您的WebRole.cs,如果你想在開始您的實例,例如之前調用服務:
public override bool OnStart()
{
ServicePointManager.DefaultConnectionLimit = 12;
return base.OnStart();
}
請記住,即使請求進行排隊,你會得到,如果你一個更好的整體性能以異步方式調用Web服務。這裏是一個非常基本的例子(假設你調用一個簡單的REST服務,WCF客戶端代理更好地支持異步請求):
<%@ Page Async="true" ... %>
public partial class AsyncPage : System.Web.UI.Page
{
private WebRequest req;
void Page_Load (object sender, EventArgs e)
{
AddOnPreRenderCompleteAsync (
new BeginEventHandler(BeginWebServiceCall),
new EndEventHandler (EndWebServiceCall)
);
}
IAsyncResult BeginWebServiceCall (object sender, EventArgs e,
AsyncCallback cb, object state)
{
req = WebRequest.Create("http://some.webs.service/rest/api");
return req.BeginGetResponse (cb, state);
}
void EndWebServiceCall (IAsyncResult ar)
{
using (var response = req.EndGetResponse(ar))
{
using var reader =
new StreamReader(response.GetResponseStream()))
{
var text = reader.ReadToEnd();
...
}
}
}
}
非常感謝!您引用的頁面還顯示了我們在每個實例大小上獲得的核心數量。在某些情況下,如果出站連接太多,XS是否會不堪重負?例如,具有2個內核的Medium可能在過去被配置爲maxconnection =「24」。這不是對Azure的建議嗎?我想知道有多少XS可以站立。 –
我建議你從一個XS實例上開始12(因爲你會得到一個專用的核心,所以Small會更好),並且做一些壓力測試來看看它是如何響應的。但請記住,如果使用異步請求調用Web服務,我們會得到更好的結果(我更新了我的答案)。 –
哇!這是很棒的東西。謝謝。 –