Одной из сложностей, с которой я столкнулся при развертывании приложения C#.Net Core Web API на IIS оказалась ошибка при вызове запросов POST и DELETE.

Тот же самый код и те же самые запросы в IIS Express работали отлично, а при публикации проекта на IIS возникает ошибка:

Error: 405 Method not Allowed

Для решения этой проблемы я внес исправления в web.config файл в папке с опубликованным кодом, я добавил в него следующие строки:

				
					      <modules runAllManagedModulesForAllRequests="true">
        <remove name="WebDAVModule"/> <!-- ADD THIS -->
      </modules>

				
			

В результате получился такой web.config:

				
					<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\CryptoAlert.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
      <modules runAllManagedModulesForAllRequests="true">
        <remove name="WebDAVModule"/> <!-- ADD THIS -->
      </modules>
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 59388712-295a-4fd6-824d-4b24ef3fd1a4-->
				
			

Но это не до конца решило мою проблему, так как после очередной публикации проекта файл web.config снова становится таким как был и ошибка повторяется.

Как разрешить POST и DELETE для CORE API в IIS

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.