Press ESC to close

.net core projede IIS üzerinde 405 method not allowed hatası

Herkese merhaba, API projelerimin birinde localde sorunsuz çalışan fakat uzak sunucumda 405 hatası aldığım bir endpointim vardı. Sorunu araştırdığımda GET ve POST metodları dışında bir HTTP METHOD kullandığımızda IISde bu problemin çok genel bir sorun olduğunu farkettim.

Sorunun çözümü için IIS üzerinde aşağıdaki işlemleri yapmam ve sonrasında Web Sitesini + Uygulama Havuzunu yeniden başlatmak sorunun çözülmesini sağlayacaktır.

  1. IIS Manager’i açıyoruz ve sol menüden web sitemizi seçiyoruz.
  2. WebDav Authoring Rules özelliğine girelim ve sağ menüden Disable WebDAV seçeneğine tıklayalım.
  3. Modules özelliği altındaki listeden WebDAV Module’ü bulalım ve sağ menüden silelim.
  4. HandlerMapping özelliği altından WebDAVHandler’i bulalım ve sağ menüden sil seçeneğine tıklayalım.
  5. Web sitesine ait uygulama havuzuna gidelim ve stop – start yapalım.
  6. Web sitesine gidip restart edelim.

Sorunun çözüldüğünü doğrulamak için web sitenize gidip kontrol sağlayabilirsiniz.


2023-11-13 Güncelleme

Yazımın üzerinden uzun zaman geçmiş fakat bugün bir sitemde web dav ile birlikte put – delete metodlarına izin vermem gerekti. İnternette web dav ile put kullanımı konusunda neredeyse hiç makale ya da yazı yoktu. Bir kaç saatlik bir araştırmanın sonunda aşağıdaki iki yöntemi birlikte uygulayınca IIS sunucum üzerinde başarılı çözüme ulaştım.

1- Web Dav üzerinde PUT ve DELETE headerlarına izin vermeliyiz.

IIS Manager -> Sites -> MySite -> Handler Mappings -> WebDAV -> Edit -> Request Restrictions -> Verbs -> All verbs -> OK.

2 – AspNetCore modülü üzerinde script seçili ise hiçbiri olarak değiştirmeliyiz.

IIS Manager -> Sites -> MySite -> HandlerMappings -> aspNetCore -> Edit -> Request Restrictions -> Access -> None -> OK.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir