Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IIS内的主机重启_C#_Asp.net Core Webapi - Fatal编程技术网

C# IIS内的主机重启

C# IIS内的主机重启,c#,asp.net-core-webapi,C#,Asp.net Core Webapi,我有一个相当简单的.NETWebAPI应用程序,我正试图将其托管在IIS中。遵循微软网站关于此的所有说明。 下面是它的启动方法 public static void Main(string[] args) { var host = WebHost.CreateDefaultBuilder(args) .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory

我有一个相当简单的.NETWebAPI应用程序,我正试图将其托管在IIS中。遵循微软网站关于此的所有说明。 下面是它的启动方法

    public static void Main(string[] args)
    {
        var host = WebHost.CreateDefaultBuilder(args)
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }
publicstaticvoidmain(字符串[]args)
{
var host=WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseContentRoot(目录.GetCurrentDirectory())
.Useii整合()
.UseStartup()
.Build();
host.Run();
}
我将应用程序池配置为不使用任何托管代码,但在日志中仍会出现此错误

Application startup exception: System.InvalidOperationException: Application is running inside IIS process but is not configured to use IIS server.
   at Microsoft.AspNetCore.Server.IIS.Core.IISServerSetupFilter.<>c__DisplayClass2_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
crit: Microsoft.AspNetCore.Hosting.Internal.WebHost[6]
应用程序启动异常:System.InvalidOperationException:应用程序正在IIS进程内运行,但未配置为使用IIS服务器。
在Microsoft.AspNetCore.Server.IIS.Core.IISServerSetupFilter.c__DisplayClass2_0.b__0(IApplicationBuilder应用程序)
在Microsoft.AspNetCore.HostFilteringStartupFilter.c__DisplayClass0_0.b_0(IApplicationBuilder应用程序)上
在Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter.c\u DisplayClass0\u 0.b\u 0(IApplicationBuilder)
在Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()上
crit:Microsoft.AspNetCore.Hosting.Internal.WebHost[6]
我不知道会出什么问题。 有什么建议吗


对于
InProcess
,它使用.NET Core 2.2

,使用
IISHttpServer

对于代码,您正在配置使用进程外
UseKestrel()

要解决此问题,请删除
.UseKestrel()

public static void Main(string[] args)
{
    var host = WebHost.CreateDefaultBuilder(args)
                //.UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();
    host.Run();
}
publicstaticvoidmain(字符串[]args)
{
var host=WebHost.CreateDefaultBuilder(args)
//.UseKestrel()
.UseContentRoot(目录.GetCurrentDirectory())
.Useii整合()
.UseStartup()
.Build();
host.Run();
}

有关更多详细信息,请参阅。

我想使用
UseKestrel()
。 当我创建.NETCore2.0或2.1项目时。我可以使用
UseKestrel()
但是如果我创建.NETCore2.2项目,我就不能使用
UseKestrel()

我就这样解决了这个问题

  • 创建新的.net core 2.0或2.1项目。然后,您可以将.net核心项目升级到2.2。它会起作用的

但这不是有效的解决方案。

您有web.config吗?您安装了.net core IIS托管捆绑包吗?是的,这是web.config是的,我确实安装了II主机包。