标签: http-status-code-503

IIS 7.0 503错误与通用处理程序(.ashx)实现IHttpAsyncHandler

我使用实现IHttpAsyncHandler的通用处理程序遇到了一些性能问题.最简单的是,处理程序接收GET请求,20秒后在响应中写入"<timeout />"后结束响应.

当使用10000-20000个并发请求锤击.ashx时,在准确的5000个请求之后,503服务器不可用.切换到同步模式并立即结束请求时,问题就消失了.

我已经修改了许多设置,但我唯一能够实现的是降低发生此错误的请求阈值.

这是我玩过的设置的简要说明:

machine.config中:

<configuration>
    ...
    <system.web>
        ...
        <processModel enable="true" requestQueueLimit="10000"/>
        ...
Run Code Online (Sandbox Code Playgroud)

web.config中:

<configuration>
    ...
    <system.web>
        ...
        <httpRuntime enable="true" appRequestQueueLimit="10000"/>
        ...
Run Code Online (Sandbox Code Playgroud)

IIS管理器> ApplicationPools>高级设置

Queue Length : 65535
Run Code Online (Sandbox Code Playgroud)

虽然我不能确定,但​​是如果请求是同步的,那么这些设置似乎工作正常,但是当异步时,在服务器开始告诉我离开之前,我似乎无法超越5000个请求.如果我把事情设置得更低(不能确切地记住上面的设置,但我已经尝试了所有设置),那么503计数会相应地上升,但是当负载严重时我永远不能阻止它超过5000 .

似乎有很多设置分散在无数的地方可能会影响到这一点,但5000似乎相当固定.我在这里看到appRequestQueueLimit不能超过5000,但是找不到关于此的更多信息,并想知道这是否是错误的信息.

IIS中是否存在任何类型的"泛滥控制"设置,可能会将单个主机限制为不超过5000个请求?如何让IIS处理更多5000个并发异步请求?

编辑2:是否有任何计数器或其他指标可能超出限制,我将如何进一步调查?

编辑:这是loadgenerator代码:

using System;
using System.Net;
using System.Threading;

namespace HammerTime
{
    class Program
    {
        private static int counter = 0;
        static void Main(string[] args)
        {
            var limit = 5000;
            ServicePointManager.DefaultConnectionLimit=limit;
            for (int i = 0; i < limit;++i )
            {
                StartWebRequest(i.ToString());

            }
            Console.ReadLine();
        }

        private …
Run Code Online (Sandbox Code Playgroud)

asp.net iis-7 ashx ihttpasynchandler http-status-code-503

7
推荐指数
1
解决办法
1万
查看次数

为什么Azure给我一个间歇性的错误503.该服务不可用?

我有一个已经运行了很长一段时间的Azure服务.它根据请求中的参数构建word或powerpoint文档,并将uri返回到构建文档.这是通过visualforce页面进行访问,当您单击按钮时,它会调用服务并显示刚刚构建的文档的链接.简单.

突然之间,我得到了一个明显随机的503 Service Unavailable错误.有时我点击按钮,没问题.其他时间503错误.每次按钮触发完全相同的请求.有谁知道为什么会发生这种情况?

显然,一遍又一遍地做同样的事情并期待不同的结果,不是精神错乱!

感谢您抽时间阅读.

salesforce azure http-status-code-503

7
推荐指数
1
解决办法
8502
查看次数

降级健康检查的HTTP状态代码应该是什么?

我有一个运行状况检查端点/status返回以下状态代码和响应正文:

  • 健康 - 200 OK
  • 退化 - ?
  • 不健康 - 503 Service Unnavailable

HTTP状态代码对于降级响应应该是什么?"降级"检查用于成功但速度缓慢或不稳定的检查.什么HTTP状态代码最有意义?

http health-monitoring http-status-codes http-status-code-503 kubernetes-health-check

7
推荐指数
1
解决办法
1203
查看次数

如果.NET工作进程崩溃,其他用户会发生什么?

我对ASP.Net工作进程如何处理进程的了解非常不足.我希望那里的一些专家能够帮助我.

如果我使用System.OutOfMemoryException使工作进程崩溃,那么用户体验的是同一进程所服务的其他用户?他们会得到一个空白的屏幕吗?503错误?

我将尝试与我们实验室中的其他人一起测试这种情况,但我想我会把它漂浮在那里.我会用我们的结果更新.

更新:我们的结果各不相同.如果我们人为地引发OOM异常(例如通过将更大和更大的PDF加载到内存中),那个工作进程所服务的其他线程将暂时"挂起"然后完成,而其他线程似乎永远不会返回.谢谢你的回复.

c# asp.net process worker http-status-code-503

6
推荐指数
1
解决办法
3020
查看次数

如果上游关闭,则显示自定义503页面

我使用nginx作为apache服务器的前端.配置文件如下所示:

upstream apache {
    server localhost:8000;
}

server {
    listen 80;
    error_page 503 /www/static/503.html;

    # need some magic here #

    location /static/ {
        root /www/static/;
    }

    location / {
        proxy_path http://apache/;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当apache关闭时,我收到一个由nginx生成的简单502页面.如何使它服务于我的自定义错误页面并返回状态代码503,这在这种情况下更相关?

apache proxy nginx http-status-code-503

6
推荐指数
1
解决办法
1万
查看次数

在Nginx中返回503以获取POST请求

我有一个简单的配置文件,用于维护时自定义503错误页面.相关部分是这样的:

server {
    listen      80 default;
    root        /usr/share/nginx/html;
    server_name example.com;

    location / {
        if (-f $document_root/503.json) {
            return 503;
        }
    }

    # error 503 redirect to 503.json
    error_page 503 @maintenance;
    location @maintenance {
        rewrite ^(.*)$ /503.json break;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是Nginx发现任何请求都在静态文件中解析,任何POST,PUT和DELETE请求都得到405(方法不允许)响应.

所以问题是:如何告诉Nginx为任何HTTP方法提供页面服务?

post nginx http-status-code-503

6
推荐指数
1
解决办法
2656
查看次数

Python请求库异常处理

我正在使用python请求库(请参阅此处)创建下载服务,以从其他服务器下载数据.问题是,有时我得到一个503 error,我需要显示一个适当的消息.请参阅以下示例代码:

import requests
s = requests.Session()
response = s.get('http://mycustomserver.org/download')
Run Code Online (Sandbox Code Playgroud)

我可以检查response.status_code并获得status code = 200.但是我如何try/catch针对特定错误,在这种情况下,我希望能够503 error适当地检测和处理它们.

我怎么做?

python exception http-status-code-503 python-requests

6
推荐指数
1
解决办法
2万
查看次数

Heroku H18 503"请求中断"错误

我看到了其中的一些.我理解他们的意思,这就是为什么我无法理解为什么会这样.非常不一致,并且似乎不是超时问题.

相关的东西:

  • Php/laravel/Postgres Heroku
  • 我强制使用SSL
  • 我路由/到/ anotherroute
  • 我自己无法与任何客户复制
  • 路线并不总是相同,有时是资产的简单负荷
  • 我没有看到报告的应用程序错误
  • 袜子=客户端
  • 服务时间始终<1秒

一些日志数据:

10月29日18时22分12秒的myapp的web生产的Heroku /路由器:袜子=客户端在=错误代码= H18 DESC = "请求中断" 方法= GET路径= "/ aroute" 主机= ... = REQUEST_ID ... fwd ="##.##.##.###"dyno = web.1 connect = 2ms service = 34ms status = 503 bytes = 3816

10月29日18点22分13秒的myapp的web生产的Heroku /路由器:袜子=客户端在=错误代码= H18 DESC = "请求中断" 方法= GET路径= "/ aroute" 主机= ... = REQUEST_ID ... fwd ="##.##.##.###"dyno = web.1 connect = 1ms service = 538ms status = 503 bytes = 3822

10月29日18时22分14秒的myapp的web生产的Heroku /路由器:袜子=客户端在=错误代码= H18 DESC = …

php heroku http-status-code-503 laravel

6
推荐指数
1
解决办法
3237
查看次数

每当CORS $ http请求失败时,返回的响应始终为0

这是SO中这个帖子的类似问题.但是这里提供的答案不能应用于我的情况,因为我无法更改服务器的响应头.

假设http POST到不同的来源.这意味着CORS,包括CORS预检交换.现在假设OPTIONS请求503 service unavailable 由于服务器问题而返回错误.在这种情况下,错误处理程序提供""数据和0状态,而不是给我状态代码503和文本:service not available.下图显示了此场景的一个示例.

在此输入图像描述

在此输入图像描述

我正在使用angularjs $ http,我知道在响应中没有CORS头,如果发生这样的错误.我无法改变它.

有什么办法可以在我的拒绝对象中收到正确的错误代码和文本.

http-status-code-503 angularjs

6
推荐指数
1
解决办法
6043
查看次数

Git:在CONNECT之后从代理收到HTTP代码503

我检查了很多与此问题相关的帖子,但似乎没有什么能解决我的问题.所以现在我希望你们能给我神奇的答案.

我正在使用Intellij(但也尝试使用SourceTree)从Fisheye拉/推/克隆存储库.但是我收到错误:

git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin

fatal: unable to access 'https://myUser@myUrl/fisheye/git/myRepo.git/': Received HTTP code 503 from proxy after CONNECT
Run Code Online (Sandbox Code Playgroud)

关于503的提示意味着因维护而导致的临时停机时间对我不起作用,因为此问题现在持续一周.

关于错误/丢失代理设置的提示似乎也不起作用.我为系统git和IDE(Intellij)设置了http和https代理.

它以前工作过,我能够克隆存储库.然后我创建了一个新的分支,进行了一些更改,并希望将其推回到主服务器.

我真的很期待一些聪明的提示.

谢谢到目前为止

UPDATE

我补充说:

export GIT_TRACE_PACKET=1 export GIT_TRACE=1 export GIT_CURL_VERBOSE=1

我收到了以下日志:

$ git fetch
trace: built-in: git 'fetch'
trace: run_command: 'git-remote-https' 'origin' 'https://Username@myWebService.de/randomGit.git/'
* Couldn't find host myWebService in the _netrc file; using defaults
*   Trying 15.46.16.11...
* Connected to myProxy.com (15.46.16.11) port 8080 (#0)
* Establish HTTP proxy tunnel to myWebService.de:443
> …
Run Code Online (Sandbox Code Playgroud)

git proxy intellij-idea http-status-code-503 atlassian-sourcetree

6
推荐指数
1
解决办法
2万
查看次数