Использование нескольких экземпляров ServerEventsClient в одном процессе, подключающемся к одному и тому же URI службы - PullRequest
2 голосов
/ 02 апреля 2019

Когда я использую несколько экземпляров ServerEventsClient в одном приложении .NET, подключающемся к одному и тому же URI, любые последующие вызовы GET / POST и т. Д. Блокируются на неопределенный срок и время ожидания.Я полагаю, что это связано с некоторой защитой от DDoS, как упоминалось в этом ответе @mythz ( Тайм-аут с использованием ServiceStack.Client ).И это происходит только тогда, когда сервер и клиент не работают на одном и том же ПК.

Я могу обойти это, убедившись, что я создаю только один ServerEventsClient для данного URI, но до того, как я добавлю слишком много работы,Я хочу убедиться, что это сделано специально, и нет более простых способов решения этой проблемы.Кто-нибудь еще сталкивался с этим вопросом?

1 Ответ

0 голосов
/ 02 апреля 2019

Клиентский сервер событий ServiceStack C # использует .NET HttpWebRequest за кулисами, в котором имеется встроенный лимит запросов на домен.

Вы должны иметь возможность увеличить лимит путем увеличения System.Net.ServicePointManager.DefaultConnectionLimit , например:

ServicePointManager.DefaultConnectionLimit = 10;

В качестве альтернативы вы можете увеличить этот предел с помощью <connectionManagement> в вашем файле Web.config:

<configuration>  
  <system.net>  
    <connectionManagement>  
      <add address = "http://www.contoso.com" maxconnection = "4" />  
      <add address = "*" maxconnection = "10" />  
    </connectionManagement>  
  </system.net>  
</configuration>  
...