Merhaba Arkadaşlar, bu yazımda sizlere Swagger UI not displaying when deploying API on IIS Hatası Çözümünden bahsedeceğim.
.Net Core ile bir API projesi oluşturduk ve Swagger eklemesini de gerçekleştirdiğimizi düşünelim. API içerisinde gerekli endpointlerimizi yazdık ve IIS üzerinde kurulum yapmak istiyoruz. Projemizin publish halini aldık ve IIS üzerindeki oluşturduğumuz bir Site’a kurduk. Debug modda çalışırken Swagger ile kontrollerimizi başarılı bir şekilde yapmıştık
ama IIS üzerine aktarım yaptığımızda aşağıdaki gibi bir hata alabiliriz.
Swagger UI not displaying when deploying API on IIS you need to temporarily add the production clause in your condition before you can see the swagger in the production environment. See the yellow highlighted section in the attached image. env.IsProduction()
Yukarıda çıkan hatanın çözümü aslında oldukça basit ve hata mesajında aslında bize uyarısını veriyor. Startup dosyamıza ya da Program.cs dosyamıza giderek swagger ui ayarına bakmamız gerekiyor.
Eğer aşağıdaki gibi bir ayar mevcut ise IIS üzerinde Swagger çalışmayacaktır.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
Yukarıdaki kod örneğinde Development aşamasında Swagger UI çalıştırılmasını sağlamış oluyoruz. Bu 2 satır olan kodu if koşulunun dışına alırsak IIS üzerinde de Swagger UI çalışacaktır. Ya da koşulumuza veya koşuluyla Production eklemesini de gerçekleştirerek de bu hatayı çözebiliriz.
Umarım faydalı olur.
Bir sonraki yazıda görüşmek üzere…