通过将一个项目分成两个项目

时间:2016-07-09 07:00:47

标签: c# rest iis web iis-8

我是.net的新手,我很难解释我的问题。因此,如果您认为我没有提供足够的信息或其他任何信息,请随意告诉我。

我有一个用于发送短信的网络服务。我在输入中收到一组消息然后发送它们。在后台,我有队列。我将每条消息放入队列然后发送它。我把它们视为一项任务。每个任务都有一个最大的尝试次数,超时和...有时我必须多次尝试才能发送一条消息。这个Couse在我的服务器上有很大的开销。 (平均而言,我每天尝试大约1000万次,而且我只成功发送了大约600万条消息。)

但有时我的网络服务用户会收到超时。我将IIS队列长度增加到最大值并将最大工作进程设置为0.但问题没有解决。 最后,我将项目分成两部分。 一个作为接口。用户调用此接口,我将它们放入队列中。另一个只是为了完成任务。它执行队列任务。然后问题解决了。 1-我没有更改服务器资源。 2-我没有更改代码逻辑(我只是将它转换为两个项目) 然后我的Web服务停止返回超时错误。

这是我的问题:如果不分离项目,我可以这样做吗?我在IIS配置中遗漏了什么吗?

更新

  1. 我在IIS 8中托管的Web服务应用程序,我使用WCF 技术
  2. 我将最大连接数增加到1000,maxConcurrentCalls, 事情的maxConcurrentSessions,maxConcurrentInstances和max iis工作得好一点,但与单独的项目相比,它并不好。
  3. 我在所有项目中关闭了客户端。
  4. 这是我的网络配置的一部分:

      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentSessions="2147483647" maxConcurrentInstances="2147483647" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    
    <connectionManagement>
      <add address="*" maxconnection="1000" />
    </connectionManagement>
    

0 个答案:

没有答案