ASP .NET Core WebAPI - hostowanie w IIS

1

Problem był w budowaniu konfiguracji, a konkretnie z nie możliwością odczytania pliku konfiguracji. Faktycznie, dziwne że działało Ci przez komendę dotnet, ale czy czasem nie było tak dla tego ze przypadkiem środowisko nie było ustawione jako Production? Spróbuj usunąć plik appsetings.json (ten "czysty" , nie środowiskowy). Wydaje mi się że wtedy też Ci padnie aplikacja.

Swoją drogą, miło by było jakbyś chociaż jakąś okejke dał...

0

Uruchamiałem API komendą dotnet z tego samego miejsca co uruchamiał IIS, więc to było to samo. Jaki jest sens trybu Development skoro są błędy na Production? Człowiek się uczy całe życie, a więc od teraz jak będę pisał API albo aplikację webową to od razu w konfiguracji projektu zmieniam na Release + Production, ponieważ daje mi to lepszą "obsługę" błędów... Czy tylko ja uważam, że to bez sensu?

0

Ja po prostu uzywam Debug do pracy a pozniej Release. Mam plik appsettings.release.json ktory ma jedynie tokeny w miejsce wartosci konfiguracji (np. "{DbConnectionStringValue}"). Nie bawie sie w dodawanie dodatkowych environment variables.

0

Ja też piszę w Debug, wydaje w Release. Problem właśnie w tym, że robiąc publish VS zmienił mi tryb na Production. Ja nigdy w życiu tego tam nie ruszyłem. Wiedziałem, że coś takiego istnieje, ale jak nie wiem do czego służy to nie ruszam. Chyba, że są błędy tak jak teraz.

0

Ok, rozumiem. Cos tam musi byc pogmatwane w takim razie. Ja swoja konfiguracje buduje w Program.cs i wyglada to tak:

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

        public static IWebHostBuilder CreateWebHostBuilder(string[] args)
        {
            var environment = string.Empty;

#if DEBUG
            environment = "Development";
#elif RELEASE
            environment = "Release";
#endif

            return WebHost.CreateDefaultBuilder(args)
                .UseEnvironment(environment)
                .UseStartup<Startup>()
                .UseConfiguration(BuildConfiguration(environment));
        }

        private static IConfiguration BuildConfiguration(string environment)
            => new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddEnvironmentVariables()
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true)
                .Build();

I w Startup.cs:

        public Startup(IConfiguration configuration)
            => Configuration = configuration;

        [ExcludeFromCodeCoverage]
        public IConfiguration Configuration { get; }

1 użytkowników online, w tym zalogowanych: 0, gości: 1