IIS停止子域的应用程序池?

我有一个像这样的子域的网站:

在这里输入图像说明

我的域名是“a.com”,子域名是“api.a.com”。 我在子域中发布了一个服务。 它在Get请求上正常工作。 但在获取POST请求(通过API)之前,子域的应用程序池停止。

所以我在服务器上安装了一个debugging诊断工具 。 每次POST请求到子域后,我得到5错误。 这里是分析结果:

在这里输入图像说明

谷歌search后,我发现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()); } 

但是作为一个testing,我在POST方法中返回了一个带有任何代码的简单string(这会导致崩溃),但没有任何更改,并且在向web api发送POST请求之后,应用程序池又停止了。

毕竟,我发现“api.a.com”的子域身份(在应用程序池中)与“cdn.a.com”和“test.a.com”等其他子域不同。因此,我发布我的代码到这个领域之一,每一件事情都很好。

删除并重新创build“api.a.com”后,身份被更改,但“api.a.com”的应用程序池再次停止。

作为更多信息,Host安装了Plesk并创build了“a.com”和“api.a.com”,在获得面板后,我创build了另外两个子域:“cdn.a.com”和“test.a. COM”。 但是主机说这不是我们的错,这是你的代码错误!

你怎么看:

  1. 身份重要导致问题?
  2. 可以是服务器问题还是代码问题?
  3. 如何解决这个问题。 因为我需要api.a.com的作品。

一些想法:

  • exception0x0000005看起来像权限被拒绝的错误。
  • 所有的例外都是针对webdav模块的,如果你不需要的话试试把它关掉。