在IIS中托管Netcore 2.1 Web API时解决404错误

时间:2019-06-17 10:48:57

标签: .net iis asp.net-core asp.net-core-webapi asp.net-core-2.1

我正在IIS中发布.netcore 2.1 Web api项目,但出现404错误。我可以从Visual Studio运行应用程序,并且可以使用swagger。

已经安装了netcore 2.1运行时,重新启动了环境,在我的应用程序池中选择了“无托管代码”,但是仍然出现404错误。

我的launchSettings.json看起来很像这样:

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:65391",
      "sslPort": 44318
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "QAAPI": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "https://localhost:5001",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

我的Startup.cs:

public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddSwaggerGen(c =>
               {
                   c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { Title = "QA API", Description = ""});

               }
            );

        }


        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseMvc();

            app.UseSwagger();
            app.UseSwaggerUI( c =>
                {
                    c.SwaggerEndpoint("/swagger/v1/swagger.json", "QA API");
                }
            );
        }

1 个答案:

答案 0 :(得分:0)

您是否已在IIS设置中检查了应用程序池标识?

enter image description here