2

私の Azure Web ロールでは、約 3,000 万バイトを超える POST 要求の処理に問題があります。3,000 万バイトを超えるすべての要求を検出し、その結果を 404 に設定する IIS フィルターがあることは承知していますが、これらの 404 コードが IIS ログに表示されることを期待しています。

私の Web ロールのユーザーが、次のような状況に直面しています: 私の Web ロールの特定の URL への POST 要求は、約 3,000 万バイト未満で問題なく送信されます (IIS ログに表示されます) が、それよりも大きい POST 要求 (まったく同じ URL に) クライアントの HTTP 503 (サービスを利用できません) コードを生成し、IIS ログにそれらの要求が表示されません。

サンプルの長い POST のヘッダーを次に示します。

POST /mySpecificUrl?paramshere HTTP/1.1
User-Agent: Custom USer Agent
Content-Type: application/octet-stream
Proxy-Authorization: NTLM LongBase64StringHere
Host: my.hostname.here
Content-Length: content length here - about 32 megabytes
Expect: 100-continue

おそらくロードバランサーか何かがそれらのリクエストを傍受しているようで、私の役割に達していません。

現在、ユーザーは Fiddler を使用しており、コード 503 を取得すると、次のコンテンツが返されると主張しています。

Hello,
A communication error occurred: ""
The Web Server may be down, too busy, or experiencing other
problems preventing it from responding to requests.
You may wish to try again at a later time.

HTML として作成されます。このコンテンツに付随するヘッダーには、すべての応答に挿入されるカスタム ヘッダーが含まれていないため、要求が IIS に到達していないという別の証拠になります。

この動作の原因を特定するにはどうすればよいですか?また、それを制御するにはどうすればよいですか (たとえば、要求サイズのしきい値を変更するなど)?

4

2 に答える 2

1

IIS に到達するための要求をブロックしているものがあると確信しています。おそらくファイアウォール ルールまたはロード バランサーが原因で、IIS でログを確認できませんでした。悪いニュースは、あなたが大規模なコンテンツを投稿することを伝える方法が見つからなかったことです.

この構成を「ServiceDefinition.csdef」ファイルに適用して、何かに役立つかどうかを確認してください。

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzure1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2013-03.2.0">
  <LoadBalancerProbes>
    <LoadBalancerProbe protocol="http" name="config" timeoutInSeconds="36000"></LoadBalancerProbe>
  </LoadBalancerProbes>
  <WebRole name="webRoleConfig">
    <Runtime executionContext="elevated"></Runtime>
  </WebRole>  
</ServiceDefinition>
于 2013-08-12T14:22:38.647 に答える