Почему IIS принимает запросы до возврата RoleEntryPoint.Onstart?
-
28-10-2019 - |
Вопрос
Я играю с образцом Azure отсюда на вычислительном эмуляторе, и я обнаружил, что если я сделаю OnStart()
в моем классе унаследовано от RoleEntryPoint
довольно медленно возвращать страницу .aspx в веб -роли принимает HTTP -запросы еще OnStart()
возврат.
Я нахожу это довольно запутанным - почему я принимаю запросы на роль, которая еще не началась?
Решение
Эмулятор не эмулирует балансировщик нагрузки на 100%. Для облака, когда ваша роль находится в OnStart (), вы сообщаете в LB как занятый, и к нему не будет направлен трафик. Как только вы вернетесь из OnStart () с True, это займет несколько секунд или около того, но только тогда LB начнет направляться к нему. Вы можете проверить это самостоятельно, отслеживая свой onstart () и положив там большой сон (). Вы не сможете добраться до вашего экземпляра (над не затянувшимися портами).
Вы, конечно, можете попросить LB игнорировать статус готового, и он будет маршрутироваться даже при занятости, что выполняется путем указания игноризолеролеянстатуса = "true" в конечной точке.