首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Linux的.Net核心Microsoft.Web.Administration ServerManager

来自Linux的.Net核心Microsoft.Web.Administration ServerManager
EN

Stack Overflow用户
提问于 2018-12-06 13:44:22
回答 1查看 582关注 0票数 1

.net核心版本: 2.1.500

操作系统: Debian 9(4.9.0-8-AMD 64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux )

我试图通过ServerManager从Linux停止/启动应用程序池,但没有成功。根据api目录,它应该工作:https://apisof.net/catalog/Microsoft.Web.Administration.ServerManager

ServerManager.OpenRemote()试图在尝试NullReference时抛出ApplicationPools异常:

代码语言:javascript
复制
// also trying ip adress
using (ServerManager manager = ServerManager.OpenRemote("someserver"))
{
    try
    {
        if (manager.ApplicationPools == null) /* <= Here is exception!!! */
        {
            Console.WriteLine("ApplicationPool is null!");
        }
        else
        {
            foreach (var item in manager.ApplicationPools)
            {
                Console.WriteLine("  " + item.Name);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine("Exception: " + ex.Message);
        Console.WriteLine(" Trace=" + ex.StackTrace);
    }
}

结果:

异常:对象引用未设置为对象的实例。 Microsoft.Web.Administration.ConfigurationManager.CreateWritableAdminManager(WebConfigurationMap webConfigMap的Trace=,Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap configMap的字符串configPathToEdit,布尔isAdminConfig,布尔isRedirectionConfig),Microsoft.Web.Administration.ConfigurationManager.GetConfiguration(String rawConfigurationPath的字符串configPathToEdit,布尔isAdminConfig,布尔isRedirectionConfig),字符串cacheKey,布尔isAdminConfig,( Microsoft.Web.Administration.ServerManager.ApplicationPoolsSectionCreator() at Microsoft.Web.Administration.Lazy.InitializeT at Microsoft.Web.Administration.ServerManager.ApplicationPoolCollectionCreator() at Microsoft.Web.Administration.Lazy.InitializeT at SomeMethod() in some_file.cs:line 123

当ServerManager通过接受字符串的构造函数创建时,ApplicationPools抛出System.PlatformNotSupportedException异常:

代码语言:javascript
复制
using (ServerManager manager = new ServerManager(@"\\someserver\IISSharedConfig\applicationHost.config"))
{
    try
    {
        if (manager.ApplicationPools == null) /* <= Here is exception!!! */
        {
            Console.WriteLine("ApplicationPool is null!");
        }
        else
        {
            foreach (var item in manager.ApplicationPools)
            {
                Console.WriteLine("  " + item.Name);
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine("Exception: " + ex.Message);
        Exception e = ex.InnerException;
        while (e != null)
        {
            Console.WriteLine("InnerException: " + e.Message);
            e = e.InnerException;
        }
        Console.WriteLine(" Trace=" + ex.StackTrace);
    }
}

结果:

异常:调用的目标引发了异常。COM不支持System.RuntimeTypeHandle.CreateInstance(RuntimeType类型的Trace=,布尔型publicOnly、布尔型wrapExceptions、布尔& canBeCached、RuntimeMethodHandleInternal& ctor)在Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap、String、String、Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap、Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap、Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap、Microsoft.Web.Administration.ConfigurationManager.CreateConfiguration(WebConfigurationMap,System.RuntimeType.CreateInstanceSlow(布尔publicOnly、布尔wrapExceptions、布尔skipCheckThis、布尔fillCache)的System.Activator.CreateInstanceT ( Microsoft.Web.Administration.ConfigurationManager.CreateWritableAdminManager(WebConfigurationMap webConfigMap )不支持InnerException: COM。Microsoft.Web.Administration.ConfigurationManager.GetConfiguration(String rawConfigurationPath中的布尔isAdminConfig,布尔isRedirectionConfig),some_file.cs:line 123中Microsoft.Web.Administration.Lazy.InitializeT at Microsoft.Web.Administration.ServerManager.ApplicationPoolCollectionCreator() at Microsoft.Web.Administration.Lazy.InitializeT at SomeMethod()的字符串cacheKey,布尔isAdminConfig,布尔isRedirectionConfig)

如何在Linux中使用ServerManager?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-06 14:12:24

我相信在Linux上不支持您想要做的事情。请参阅您在问题中发布的链接的底部:

平台 .NET标准+平台扩展

据我所知,平台扩展不是跨平台的添加,因此不能在运行Linux的应用程序中使用。

您还可以在发布的第二个错误中看到一个提示:

不支持COM。

这在Linux上是正确的。

希望能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53652793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档