【问题标题】:Calling Stop() on an Microsoft.Web.Administration.ApplicationPool thows 'NotImplementedException'在 Microsoft.Web.Administration.ApplicationPool 上调用 Stop() 会导致“NotImplementedException”
【发布时间】:2020-05-19 19:00:11
【问题描述】:
System.NotImplementedException: The method or operation is not implemented.
   at Microsoft.Web.Administration.Interop.IAppHostMethodInstance.Execute()
   at Microsoft.Web.Administration.ConfigurationMethodInstance.Execute()
   at Microsoft.Web.Administration.ConfigurationElement.ExecuteMethod(String methodName)
   at Microsoft.Web.Administration.ApplicationPool.Stop()
   at MyFileManagerService.RemoveWebService(String accountName, Int32 siteId)

我正在阅读这些文档:https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration.applicationpool.stop?view=iis-dotnet

如果方法没有实现,如何停止 AppPool?

这是一个用 c# 构建的 asp.net core 3.1 应用程序。

编辑:这很奇怪,即使检查 AppPool.State 也会抛出相同的异常。

【问题讨论】:

  • 该文档假定您在 .NET Framework 应用程序中使用 MWA API。 blog.lextudio.com/… 中的更多内容@ ASP.NET Core 应用程序不应尝试使用该 API。

标签: c# asp.net-core iis


【解决方案1】:

首先,请确保您通过 microsoft nuget manager 导入 Microsoft.web.administration。

如果您想停止 IIS 应用程序池,请将 asp.net 核心应用程序部署到您的本地 IIS。否则,它将尝试从 IIS express 而不是 IIS 加载配置文件。

最后,请尝试将应用程序池标识更改为本地系统。否则,默认 IIS 应用程序池标识将永远无权停止应用程序池。

【讨论】:

    【解决方案2】:

    该库似乎没有在 .NET Core 中完全实现。相同的代码可能适用于 .NET 4.8。

    【讨论】:

    • 我之前的说法是错误的。它按预期工作,但不是在 Visual Studio 中调试期间(即使以管理员身份运行)。如果应用程序独立运行或在 IIS 中运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多