Azureで実行中のコンソールアプリケーション(webjob)が、Azureで実行中のAPIを呼び出しています。コンソールアプリケーションは、csvファイルからメッセージを投稿します。 ローカル(Windows 10)マシン(azureで実行中のapi)からコンソールアプリケーションを実行すると、期待通りに動作します(エラーなし)。 私は(紺碧で実行されているAPIを持つ)のAzureでコンソールアプリケーションを実行すると、それは約980件のメッセージを処理し、httpclient PostAsJsonAsync errors after(n)messages after(ポート枯渇)
エラーエラーを報告して開始します。
-
を「要求を送信中にエラーが発生しました」
- は
「リモートサーバーに接続できません」私は、コンソールアプリケーションをAzureの中で実行されているいくつかの理由でポートを排出していることを信じているが、私はこれを解決する方法がわかりません。 私のファイルの行数は50,000ですが、問題が発生する前には約980にしか達しません。もう一方の端で、apiは受け取ったメッセージをSQLデータベースと紺碧のイベントハブにポストしています。 PostAsJsonAsyncが完了したら、アプリケーションで強制的にポートを解放するにはどうすればよいですか? ポートが解放されたかどうか、またはポートが使用可能であることを確認する方法を確認するにはどうすればよいですか? 私はこれらのエラーが発生している可能性がある他の理由を知っているなら、助けてください。
public async Task<string> PostMessageToAPI(string aMsg)
{
HttpResponseMessage response = null;
string strResponse = "";
try
{
using (var client = new HttpClient())
{
client.SetBearerToken("access token here");
client.BaseAddress = new Uri("MyBaseUrl.com");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
using (response = await client.PostAsJsonAsync("my/url/goes/here", anEvent.ToLower()))
{
if (response != null)
{
if (response.StatusCode != HttpStatusCode.OK)
{
throw new HttpRequestException(response.ReasonPhrase);
}
else
{
return await response.Content.ReadAsStringAsync();
}
}
}
}
}
catch (HttpRequestException ex)
{
// exception message states: "An error occurred while sending the request"
}
return strResponse;
}
- のVisual Studio 2015更新3
- .NET 4.5.1
- Azureのコンソールアプリケーションの計画:基本的な小1
- AzureのAPIのAppプラン:ここ
は私のコードです基本1小
PostMessageToAPI'は、マルチスレッド環境から呼び出さ 'ですか? – Stefan
これはAzure WebJobから呼び出されるため、複数のインスタンスを呼び出すことができますが、これはAzureによって管理されます。私はしかし、ただ1つのインスタンスをテストしています。 –
誰がリモートサーバにいますか?その端の接続が正しく切断されていない可能性はありますか? – Stefan