【问题标题】:Service too busy error in WCFWCF 中的服务太忙错误
【发布时间】:2010-10-28 09:19:09
【问题描述】:

我在 .Net WCF 服务中间歇性地收到以下异常。 "位于http://MyServer/TestWCF/MyService.svc 的 HTTP 服务太忙了。"

我错过了什么吗?

我正在使用基本的 http 绑定并已启用 WCF 限制。

<basicHttpBinding>
        <binding name="BasicHttpBinding_MyService" maxReceivedMessageSize="2147483647"
                 messageEncoding="Text" textEncoding="utf-16" sendTimeout="00:01:00" >
          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="163840000"
                        maxDepth="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="16384" />
        </binding>

。 . . .

<behavior name="MyWCFServices.MyServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceThrottling
                    maxConcurrentCalls="16"
                    maxConcurrentInstances="2147483647"
                    maxConcurrentSessions="10"/>
        </behavior>

限制是否有助于解决问题? 另外,我可以知道为高流量网站节流的推荐参数值吗?

【问题讨论】:

    标签: wcf web-services throttling


    【解决方案1】:

    您绝对可以尝试将服务限制行为中的maxConcurrentSessionsmaxConcurrentCalls 增加到30 左右的标准值,看看这是否会使错误消失。服务器太忙似乎表明进入的请求多于您的服务限制行为所允许的区域,并且由于在给定的超时期限内没有可用的服务实例为它们提供服务,因此它们已被丢弃。

    【讨论】:

    • 感谢您的回答...我需要在客户端和服务器端 web.configs 中启用限制吗?
    • 另外,我想知道 maxConcurrentInstances 参数的推荐值是多少?
    • 嗨史蒂夫 - 不需要在客户端处理这个 - 这是一个服务器端唯一的设置。至于 maxConcurrentInstances:问问自己要同时处理多少来自客户端的请求。 5? 10?处理请求需要多长时间?一个好的起点可能是 30,看看 a) 这是否有助于您的服务响应更快,以及 b) 是否不会使您的服务器过载。看到它的行为后,根据需要进行调整。
    • 是的...在这里也检查一下msdn.microsoft.com/en-us/library/…
    【解决方案2】:

    我的回答是,检查应用程序池是否正常?

    我看到当应用程序池因抛出未捕获的异常而死亡时发生此错误。

    例如,考虑自定义配置部分 - 那里有错误,将导致您的应用在启动之前失败。在短时间内使用太多这些会杀死应用程序池。

    【讨论】:

    • 先检查一下。它可能“看起来”没问题,但是如果您从管理器中停止应用程序池,您将无法重新启动它。要让一切重新开始,请在命令行中使用“net stop w3svc”,然后使用“net start w3svc”。
    • 感谢您挽救了我刚刚走出家门的理智。
    • 这是为我做的,伙计们!回收应用程序池和宾果游戏
    【解决方案3】:

    如果您的服务是在您的帐户(身份)下运行的,那么您很可能最近更改了密码——您需要在高级设置 | 中为其 IIS 应用程序池重置密码。身份对话框。

    【讨论】:

    • +1 这只是在生产环境中发生的。指示服务器繁忙的非常误导性的错误消息。嘘。感谢您指出这一点!
    【解决方案4】:

    不仅仅是 maxConcurrentSessions,还有会话持续多长时间。

    如果客户端没有关闭连接,它将保持打开状态,直到超时。然后,您可以在服务器上的活动很少的情况下达到 maxConcurrentSessions 限制。

    【讨论】:

    • 其实客户端不应该使用using语句。清理应明确处理。有关详细信息,请参阅msdn.microsoft.com/en-us/library/aa355056.aspx
    • @Anthony,感谢您的评论,我已经删除了使用部分。这是从 2009 年开始的,那时我还年轻,不知道有什么更好的 :)
    • @AntSwift:很多人都知道但不这样做。
    【解决方案5】:

    确保你也检查了内部异常;在我们的部署过程中,我们禁用了 WCF Web 服务的应用程序池,并且客户端在此期间开始收到此错误:

    System.ServiceModel.ServerTooBusyException:位于https://ourserver.x.com/path/service.svc 的HTTP 服务太忙。 ---> System.Net.WebException:远程服务器返回错误:(503)服务器不可用。

    所以在这种情况下,HTTP 错误 503 被(错误?)解释为“服务器太忙”。

    【讨论】:

      【解决方案6】:

      我知道这个异常的唯一来源是如果您正在使用会话,并且您设法达到 MaxPendingChannels 油门。它的默认值非常低,例如 4。您可以尝试将其设置得更高(例如 128),或者如果您只是想重现,请将其设置为 1,您应该会在负载测试中看到它。

      有关会话的更多信息,请参见此处:http://msdn.microsoft.com/en-us/library/ms733795.aspx

      【讨论】:

        【解决方案7】:

        我刚刚遇到了这个错误,它归结为一个简单的配置问题。我在完全相同的端口和相同的接口(模拟服务)上提供了一项服务。我使用适当的命令行开关运行服务以运行我想要的“原始”服务。错误消失了。

        【讨论】:

          【解决方案8】:

          我的解决方案是,检查 App.Config 文件,是否存在此特定服务的服务标签。

          例如:

          <service name="MyServices.ServiceName">
                  <endpoint address="" binding="wsHttpBinding" bindingConfiguration="TestBinding"   contract="MyServices.ServiceName">
                    <identity>
                      <dns value="localhost" />
                    </identity>
                  </endpoint>
                  <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                  <host>
                    <baseAddresses>
                      <add baseAddress="http://localhost:8732/Design_Time_Addresses/MyServices/ServiceName/" />
                    </baseAddresses>
                  </host>
          </service>
          

          【讨论】:

            猜你喜欢
            • 2011-12-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-01-06
            • 1970-01-01
            • 1970-01-01
            • 2015-10-18
            • 2012-08-08
            相关资源
            最近更新 更多