У меня есть веб-сайт с одним подобным субдоменом:
мое доменное имя - «a.com», а имя субдомена - «api.a.com». Я опубликовал услугу в поддомене. Он отлично работает с запросами Get. но перед получением запроса POST (по api) пул приложений поддомена останавливается.
Итак, я установил инструменты диагностики отладки на сервере. Я получаю 5 ошибок после каждого запроса POST в субдомен. вот результат анализа:
после поиска в Google я обнаружил, что w3wp ошибка возникает из-за утечки памяти или когда приложение пытается получить доступ к части памяти, которой не принадлежит. Я проверил весь свой код api, и не было объекта без удаления, и весь их жизненный цикл был PerWebRequest. Более того, я использовал Castle Windsor для управления жизненным циклом всех объектов, даже контроллеров.
var container=new WindsorContainer();
container.Register(Classes.FromAssemblyContaining<VisitorRepository>().BasedOn<IRepository>()
.WithService.FromInterface().LifestylePerWebRequest());
container.Register(Classes.FromAssemblyContaining<EventService>().BasedOn<IService>()
.WithService.FromInterface().LifestylePerWebRequest());
container.Register(Component.For<EventDatabaseContext>()
.LifestylePerWebRequest()
.Forward<DbContext>());
и для контроллеров:
private static void RegisterControllers(IWindsorContainer container)
{
container.Register(Classes.FromAssemblyContaining<VisitorController>()
.BasedOn<ApiController>().LifestylePerWebRequest());
}
но в качестве теста я вернул простую строку с любым кодом в Метод POST, (что вызывает сбой), но ничего не изменилось, и после отправки запроса POST в веб-API пул приложений снова остановился.
после всех этих проверок я обнаружил, что идентификаторы субдоменов (в пуле приложений) для "api.a.com" отличаются от других субдоменов, таких как "cdn.a.com" и "test.a.com". Я опубликовал свой код в одном из этих доменов, и все было в порядке.
после удаления и воссоздания идентификатора «api.a.com» были изменены, но пул приложений «api.a.com» снова остановился.
Для получения дополнительной информации на Host были установлены Plesk и созданы «a.com» и «api.a.com», а после получения панели я создал 2 других поддомена: «cdn.a.com» и «test.a. com ". Но Ведущий говорит, что это не наша вина, а ваша ошибка кода!
что ты думаешь:
Некоторые мысли: