SignalR serverSentEvents на Windows Server 2008 с запросом POST IIS 7, который занимает слишком много времени для выполнения
м используюSignalR 2.0.0-beta2
и это'ведет себя странно в производственной среде, гдеASP.NET MVC 5
Приложение [.NET Framework 4.5] установлено наWindows Server 2008
сIIS 7
, AppPool находится в интегрированном режиме и имеет только это приложение.
GET
запрос сделанSignalR
занимает только60 мс:
http://mysite.org.br/signalr/negotiate?clientProtocol=1.3&_=1374377239338
Проблема происходит сPOST
просьба, которая занимает вечность. В самом последнем тесте сейчас потребовалось невероятное3 м 1 с:
http://mysite.org.br/signalr/send?transport=serverSentEvents&connectionToken=Lp%2BGdI6jVTLPrQ3ZGJ065F9GrMbKYWNmgrtKPZz%2BCUYAsxrqP7hyAMPr%2Bg1E3IRY%2F0brzXVanumPy7NPCFOlcXTRrJssFD2EEoxd6fWhAVEUSfIj
Когда возникает эта периодически возникающая проблема, обычно требуется больше40 секунд завершить запрос.
Тестирование сFirefox 22
и Firebug ... если я отключукеш браузераработает гладко, то естьнет задержки этоPOST
запрос. В противном случае, когда я включаю кеш браузера, он снова задерживаетPOST
запрос.
С помощьюGoogle Chrome 28
ПОСТ сидит там св ожидании статус.
Если я переработаюAppPool
тогдаPOST
запрос занимает только203 мс, Единственная модификация, которую я сделал для этого конкретногоAppPool
что я поставилIdle Time-out (minutes) = 0
то есть яЯ хотел бы избежать повторного использования AppPool.
Глядя на Process Explorer, я вижу, чтоw3wp.exe
имеет177.300 KB (Private Bytes)
а также211.900 (Working Set)
а такжеCPU
является0
прямо сейчас.
ВотSignalR
информация журнала, взятая из консоли Firebug:
[00:27:20 GMT-0300] SignalR: Negotiating with '/signalr/negotiate?clientProtocol=1.3'.
Signal...FCU9MU1 (line 1)
GET http://mysiste.org.br/signalr/negotiate?clientProtocol=1.3&_=1374377239338 200 OK 62ms
js?v=K...xUBM641 (line 1)
[00:27:20 GMT-0300] SignalR: Attempting to connect to SSE endpoint 'http://mysiste.org.br/signalr/connect?transport=serverSentEvents&connectionToken=Lp%2BGdI6jVTLPrQ3ZGJ065F9GrMbKYWNmgrtKPZz%2BCUYAsxrqP7hyAMPr%2Bg1E3IRY%2F0brzXVanumPy7NPCFOlcXTRrJssFD2EEoxd6fWhAVEUSfIj&connectionData=%5B%7B%22name%22%3A%22assessmenthub%22%7D%5D&tid=5'
Signal...FCU9MU1 (line 1)
[00:27:20 GMT-0300] SignalR: EventSource connected
Signal...FCU9MU1 (line 1)
[00:27:20 GMT-0300] SignalR: Now monitoring keep alive with a warning timeout of 13333.333333333332 and a connection lost timeout of 20000
Signal...FCU9MU1 (line 1)
POST http://mysiste.org.br/signalr/send?transport=s...F0brzXVanumPy7NPCFOlcXTRrJssFD2EEoxd6fWhAVEUSfIj 200 OK 3m 1s
js?v=K...xUBM641 (line 1)
[00:39:12 GMT-0300] SignalR: EventSource readyState: 0
Signal...FCU9MU1 (line 1)
[00:39:12 GMT-0300] SignalR: EventSource reconnecting due to the server connection ending
Signal...FCU9MU1 (line 1)
[00:39:14 GMT-0300] SignalR: EventSource calling close()
Signal...FCU9MU1 (line 1)
[00:39:14 GMT-0300] SignalR: serverSentEvents reconnecting
Signal...FCU9MU1 (line 1)
[00:39:14 GMT-0300] SignalR: Attempting to connect to SSE endpoint 'http://mysiste.org.br/signalr/reconnect?transport=serverSentEvents&connectionToken=Lp%2BGdI6jVTLPrQ3ZGJ065F9GrMbKYWNmgrtKPZz%2BCUYAsxrqP7hyAMPr%2Bg1E3IRY%2F0brzXVanumPy7NPCFOlcXTRrJssFD2EEoxd6fWhAVEUSfIj&connectionData=%5B%7B%22name%22%3A%22assessmenthub%22%7D%5D&messageId=d-k%2C0%7Cx%2C0%7Cy%2C1%7Cz%2C0&tid=5'
Signal...FCU9MU1 (line 1)
[00:39:44 GMT-0300] SignalR: Couldn't reconnect within the configured timeout (30000ms), disconnecting.
Signal...FCU9MU1 (line 1)
[00:39:44 GMT-0300] SignalR: SignalR: Stopping connection.
мойWeb.config
имеет эти настройки:
.
.
.
Из симптомов похоже, что ответ как-то буферизуется. этоПроблема SignalR упоминает проблему с антивирусом AVG, но на моем клиенте не установлен антивирус AVG »с сервера. Она имеетMcAfee
хоть.
Что может быть причиной такого поведения? Если вам нужна дополнительная информация для дальнейшей отладки, просто спросите, и яЯ сделаю все возможное, чтобы обеспечить это.
Примечание: тем временем я вернулся к стабильной версии SignalR 1.1.2, и пока все работает нормально.