IIS останавливает пул приложений поддомена?
У меня есть веб-сайт с одним поддоменом, подобным этому:
мое доменное имя - "a.com", а имя поддомена - "api.a.com". Я опубликовал сервис в поддомене. Он отлично работает на запросы Get. но до получения запроса POST (через API) пул приложений субдомена останавливается.
Поэтому я установилсредства диагностики отладки на сервере. Я получаю 5 ошибок после каждого запроса POST к поддомену. вот результат анализа:
послепоиска в Google я обнаружил, что ошибка w3wp связана с утечкой памяти или когда приложение пытается получить доступ к той части памяти, которая не принадлежит. Я проверил весь код API, и не было никакого объекта без его утилизации, и весь их жизненный цикл был "PerWebRequest". Более того, я использовал замок Виндзор, чтобы контролировать жизненный цикл всех объектов, даже контроллеров.
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. ком". Но Хост говорит, что это не наша вина, а ошибка ваших кодов!
что ты думаешь:
- Важна ли личность, которая вызывает проблемы?
- Это может быть проблема с сервером или проблема с кодом?
- Как можно решить эту проблему. потому что мне нужен api.a.com работает.
1 ответ
Некоторые мысли:
- Исключение 0x0000005 выглядит как ошибка отказа в разрешении.
- Все исключения относятся к модулю webdav, если он вам не нужен, попробуйте отключить его.