Web プロジェクトを作成してから Application Insights が有効になっている MVC5/WebAPI2 アプリケーションがあります。
オブジェクト (文字列、モデル オブジェクトなど) を返す WebApi メソッドは期待どおりに返され、JSON または XML にシリアル化されます。
public class TestController : ApiController
{
[HttpGet]
[AllowAnonymous]
async public Task<HttpResponseMessage> ReadString(int id) {
HttpResponseMessage response = Request.CreateResponse();
string str;
using (HttpClient client = new HttpClient()) {
Uri uri = new Uri("http://someurl.com/resource.rss");
str = await client.GetStringAsync(uri);
}
response.Content = new StringContent(str);
response.Content.Headers.ContentLength = str.Length;
return response;
}
}
HttpResponseMessage を返すアクションを作成したとき、ブラウザーで奇妙な動作に気付きました (Chrome と IE でテスト済み)。具体的には、コンテンツはブラウザーに返されましたが、[停止] ボタンを押すか、Web サーバー (Visual Studio 2013) を停止するまで、"ビジー" インジケーターの回転が停止しませんでした。
上記の方法が、Application Insights を使用しない Web アプリで期待どおりに機能することを確認しました。具体的には、データがブラウザーに返されると、応答が終了します。以下のメソッドが Application Insights を使用して新たに作成されたアプリに追加されると、前述の動作が発生します。
何かご意見は?