Son zamanlarda RestFUL API oluşturan kullanıcıların HTTP DELETE veya PUT istekleri yaparken bir sorun karşısında aldıkları “405 Yöntemine İzin Verilmiyor” hatası sıklaşmaya başladı.
Bu durumun başlıca sebebi IIS>WebDAV bileşenidir.
Çözümü: Web.Config düzenlemesi
En pratik çözümü .NET Core projenizin Web.Config dosyasına aşağıdaki kod düzeneğini yerleştirmek olacaktır. Çünkü eğer bir paylaşımlı hosting kullanıyorsanız handlers yönetimi sayesinde bu özelliği kendinize uyarlayabilirsiniz.
Şimdi 2 işlem yapacağız,
İlki, Web.config dosyanızı açtıktan sonra <handlers> satırını bulup hemen altına şu kodu yerleştirin:
<remove name="WebDAV" />
İkincisi, aynı Web.config dosyasında </system.webServer> satırının hemen bir üst satırına aşağıdaki satırları yerleştirin. Eğer hali hazırda <modules> tagları var ise içine ekleyebilirsiniz:
<modules> <remove name="WebDAVModule" /> </modules>
Bu işlem ardından web.config dosyanızda örnek olarak şu şekilde görünecektir:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
<remove name="WebDAV" />
</handlers>
<aspNetCore processPath=".\XXXXXX.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
<modules>
<remove name="WebDAVModule" />
</modules>
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: 22xx698-2abd-4dfc-8f89-06bxxxxc9845-->
Artık API projeniz bu sorunu yaşamaycaktır.
Alternatif Yöntem: IIS üzerinden WebDAV Bileşenini kaldırmak
Kendinize ait bir sunucuda bu sorunu yaşıyorsanız, WebDAV’ı iptal ederek kalıcı şekilde çözebilirsiniz.





