私は以前に同様の質問を投稿しましたが、応答がなかったので、もっと具体的にしようとしました(たくさんのテストの後でこれを行うことができました)。私は押し続けるつもりはありませんが、これはショーストッパーであり、私を夢中にさせています。
MVC3アプリケーションがあります。その中に、次の2つのメソッドを含むテストコントローラーがあります。
public ActionResult Test2()
{
return View();
}
public ActionResult Test2Get()
{
System.Threading.Thread.Sleep(270000);
var x = "Author = x";
return Json(x,JsonRequestBehavior.AllowGet);
}
Test2ビューは次のとおりです。
@{
ViewBag.Title = "Test2";
}
<h2>Test2</h2>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
url: 'http://www.lp-web.net/Test/Test2Get',
type: 'GET',
success: function (result) { alert('success'); }
});
});
</script>
ご覧のとおり、Test2ビューは、4.5分間スリープしてから、JSONを返すメソッドへの「ロード時」のコールバックを実行するだけです。
Azureエミュレーターを介してVSでローカルに実行すると、これはすべてのブラウザーで正常に機能します。Azure以外のバージョンを構築し、ホストされたサーバーにデプロイすると、これはすべてのブラウザーで正常に機能します。「動作する」とは、「成功」メッセージを含むアラートが表示されることを意味します。
ただし、Windows Azureにデプロイすると、Chromeを使用している場合にのみ機能します。それ以外の場合、アラートは表示されません。
他にもちょっとした情報があります。たとえば、スリープ時間が4分以下に設定されている場合、アプリがAzureにデプロイされている場合でも、すべてのブラウザーが機能します。しかし、私はそれがどのような関連性を持っているのか本当にわかりません。
私は誰かが私がどこを見ることができるかについての考えを持っていることを望んでいました。誰かがこれを自分で試してみたい場合は、http: //www.lp-web.netにアクセスし、[Test2]アクションリンクをクリックして、4.5分待ちます。それが「私だけ」なのか知りたいです。
アドバイスをよろしくお願いします。