私たちのアプリケーションには、他の asp.net アプリケーションと同様にいくつかの隠しフィールドがあります。ここでは、隠しフィールドを使用して、かなり大きな画像の HTML を格納しています。さらに処理するために、C# コードの隠しフィールドの値 (大きな HTML 文字列) を使用します。
アプリケーションの 4 つのインスタンスを作成する傾向があり、Azure クラウド サービスの負荷分散について疑問があります。アプリケーションプロセスの途中で、javascript を使用してこれらの隠しフィールドに値を割り当てます。この処理はクライアント側で行われるため、問題はありません。しかし、Azure には複数のインスタンスがあるため、サーバー側 (つまり、C#) でこれらの非表示フィールドにアクセスする場合、これらの非表示フィールドに直接アクセスすると、インスタンスが変更された場合の負荷分散のために問題が発生しますか?
注: サーバー側でこれらの非表示フィールドにアクセスしている間、ページはポストバックしません。
インスタンスがいつ変更されるかは明確ではありません。ページがポストバックされない場合、リクエストは同じインスタンスになりますか? これは保証されていますか。また、ページがポストバックを行う場合、応答は呼び出し元の要求インスタンスの同じインスタンスに送られます。
サーバー側でこれらの非表示フィールドにアクセスするための提案または正しい方法が必要です。これらの隠しフィールドは私たちにとって非常に重要です。Azure のキャッシュ/セッション設定を使用すると、データが非常に大きいため、非常にコストがかかります。提案が費用のかからない実装である場合は、非常に役立ちます。すでに厳しい予算で運営されているためです。
//2013年10月25日
大部分が Bing Map から取得した HTML で構成された大量のデータ文字列があり、Bing Map div 要素の Jquery Selector を使用して Bing マップの HTML を取得しました。この HTML 文字列をコードビハインド。JavaScript にこの文字列がありますが、コード ビハインドへの ajax 呼び出しを行うと失敗します。
POST メソッドを介して本文で送信しようとしましたが、これも失敗します。
var string = formData; // so long text
var xhr = new XMLHttpRequest();
var body = "string=" + encodeURIComponent(string);
xhr.open("POST", "index.aspx/getString", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-Length", body.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(body);
Rick が示唆したように、私たちは既に blob を試しましたが、問題は文字列を JavaScript からコード ビハインドに送信することです。私たちはここで本当に行き詰まりに陥っています。