Ich habe eine OWIN-API-Farm, die von einer Azure-Worker-Rolle gehostet wird. Anscheinend werden Anforderungen an diese Rolle nicht ordnungsgemäß roundrobined.Wie kann ich sicherstellen, dass mein WebRequest-Client nicht bei einem bestimmten Server in einer Webfarm bleibt?
Konkret habe ich eine anständige Anzahl von C# -basierten Agenten, deren Anfragen an eine Instanz innerhalb der Rolle zu "kleben" scheinen und nicht robotiert werden. Ich vermute, dies ist ein Problem auf der Client-Seite dieser Agenten. Da meine Agenten meine Arbeiterrolle jede Minute ein paar Mal aufrufen, ist das ein großes Problem.
Hier ist der Code, der meine Worker Role aufruft (dies ist eine GET-Methode, es gibt eine ähnliche POST-Methode). Kann ich irgendetwas tun, um sicherzustellen, dass Verbindungen zu bestimmten Instanzen nicht bestehen?
var client = WebRequest.Create(url);
client.Headers.Add("Authorization", string.Format("Bearer {0}", token.AccessToken));
client.Headers.Add("AccountId", accountId.ToString());
client.Timeout = 120000;
client.Method = "GET";
using (var response = client.GetResponse())
{
using (var stream = response.GetResponseStream())
{
if (stream == null) return default(T);
using (var reader = new StreamReader(stream))
{
var data = reader.ReadToEnd();
return JsonConvert.DeserializeObject<T>(data);
}
}
}
Ich verwende keine/default –
Igorek