Ошибка режима разработки после веб-развертывания ASP.Net Ядро на МКС

#c# #iis #webdeploy

Вопрос:

Я развернул свой ASP.NET Основное приложение (v5) для локальной МКС, однако, когда я пытаюсь получить доступ к одному из моих контроллеров API, я подумал, что ссылка : http://my.website/api/controllersapi. Я получаю следующую ошибку

введите описание изображения здесь

У меня уже есть переменная среды в качестве разработки, поэтому я не совсем уверен, что еще мне следует делать. Вот несколько классов из моего приложения, чтобы вы могли иметь представление о том, как оно настроено.

Программа.cs:

 public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();

                   webBuilder.UseContentRoot(Directory.GetCurrentDirectory());
                    webBuilder.UseIISIntegration();
                });
    }
 

StartUp.cs:

 public void ConfigureServices(IServiceCollection services)
        {

            services.AddDbContext<AutoPatchManagementContext>(options =>
                    options.UseSqlServer(Configuration.GetConnectionString("AutoPatchManagementContext")));

            services.AddSignalR();
            services.AddControllersWithViews().AddNewtonsoftJson(options =>
               options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
           );

        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();
           
            app.UseEndpoints(endpoints =>
            {
                
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Homepage}/{id?}");
                endpoints.MapHub<MyHub>("/myHub");
            });
        }
 

launchSetting.json

 {
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:53043",
      "sslPort": 44373
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "AutoPatchManagement": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000;http://localhost:53043",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}
 

Вот мой IISProfile.pubxml

 <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish>http://my.website</SiteUrlToLaunchAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <ProjectGuid>14712f10-a37a-441a-ad5e-e37f85eff5f4</ProjectGuid>
    <SelfContained>false</SelfContained>
    <MSDeployServiceURL>localhost</MSDeployServiceURL>
    <DeployIisAppPath>my.website</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>InProc</MSDeployPublishMethod>
    <EnableMSDeployBackup>False</EnableMSDeployBackup>
    <EnableMsDeployAppOffline>True</EnableMsDeployAppOffline>
    <TargetFramework>net5</TargetFramework>
  </PropertyGroup>
</Project>
 

Я искал об этой ошибке, и единственным решением, которое я нашел, было изменить переменную de enviorment на Development, которая уже есть. Что-то не так с моими текущими конфигурациями?

Заранее спасибо

Ответ №1:

Вам нужно добавить разработку в web.config, а не в какой-либо другой файл. Web.config должен выглядеть следующим образом:

 <aspNetCore processPath="dotnet" arguments=".TestWebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".logsstdout" hostingModel="inprocess">
   <environmentVariables>
       <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
   </environmentVariables>
</aspNetCore>