Вызов метода WCF на кэшированном клиенте веб-службы считается новым подключением IIS7? - PullRequest
0 голосов
/ 15 марта 2012

Сценарий таков: на компьютере под управлением Windows 7 имеется веб-служба WCF с IIS7.Для IIS7 с Windows 7 может быть установлено только 10 соединений (как я узнал из Интернета).

Эта веб-служба WCF имеет подключение клиента службы кэширования к другой веб-службе WCF.Является ли этот один кэшированный клиент службы одним из 10 соединений (ограниченных IIS7)?Или каждый вызов метода, через который кэшированное соединение будет одним из 10 соединений?

Примечание. Хотя я принял свой ответ, мне интересны лучшие ответы, и действительно ли они касаются общего контекста вопроса (это скорее теоретический вопрос) Я собираюсь отметить их как ответ (а не мой).

Ответы [ 2 ]

0 голосов
/ 03 сентября 2012

После некоторой документации и тестов, так как не было дано хорошего ответа, мне удалось выяснить это:

Предел 10 соединений для HTTP-запросов.Для каждого вызова метода из другой службы WCF требуется 2 HTTP-запроса (таким образом службы WCF взаимодействуют).Могут быть разные мысли, если настройки привязки и аутентификации отличаются.Я не нашел никакой информации, которая может помочь в кэшировании клиента веб-службы.

Другие запросы HTTP (более 10) не отклоняются, они фактически кэшируются в IIS.

Итаккраткий ответ - вызов метода - один из 2 из 10 HTTP-запросов.

Некоторые ссылки: http://www.jpelectron.com/sample/WWW%20and%20HTML/IIS-%20OS%20Version%20Limits.htm https://www.owasp.org/index.php/Authentication_In_IIS http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/fe1772c8-9ae3-4f6b-b05f-d9eeb683b623/

Примечание: мысль Iпринял мой ответ, мне интересна дополнительная информация и лучший ответ на этот вопрос.

0 голосов
/ 16 марта 2012

Если ваше приложение построено на .Net Framework 3.5 (не .Net Framework 4.0), то я предполагаю, что установленный вами предел равен <serviceThrottling>, который имеет следующее значение по умолчанию:

maxConcurrentSessions - 10
MaxConcurrentCalls - 16
maxConcurrentInstances - 16

Таким образом, если в вашей конфигурации привязки включены сеансы безопасности или надежных сеансов и имеется 10 одновременно работающих пользователей (пользователи = экземпляр прокси-сервера службы в открытом состоянии), то достигается ограничение maxConcurrentSessions и запросы на создание нового сеанса (открытие нового прокси-службы службы) ставятся в очередьпока старые прокси-соединения не будут закрыты.Вы можете попробовать добавить следующую конфигурацию как в Front-end WCF, так и в Backend WCF, и проверить, помогает ли это.

<behaviors> 
  <serviceBehaviors> 
    <behavior name="CalculatorServiceBehavior"> 
      <serviceDebug includeExceptionDetailInFaults="False" /> 
      <serviceMetadata httpGetEnabled="True"/> 
      <!-- Specify throttling behavior -->
      <serviceThrottling maxConcurrentCalls="30" 
           maxConcurrentSessions="30" /> 
           maxConcurrentInstances="30" /> 
    </behavior>
  </serviceBehaviors>
</behaviors>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...