How to get Web Api to publish web.config with verb request filtering

84 views Asked by At

When i publish my .net 6 web api it creates a web.config that looks like this (redacted)

<?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=".\MyDomain.MySubdomain.MyApp.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
        <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

I then need to enter into IIS-10 for the site and under requestfiltering add the verb DELETE as allowed - After which it looks like this:

<?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=".\MyDomain.MySubdomain.MyApp.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
        <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
      <system.webServer>
        <security>
            <requestFiltering>
                <verbs>
                    <add verb="DELETE" allowed="true" />
                </verbs>
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>

Currently i must remember to add the delete verb every times i update the application.

The web.config does not exists in my project its only created when i publish. It seems that ex. ASPNETCORE_ENVIRONMENT line comes from my launchsettings (i am guessing), but i cannot find a similar method to have the requestfiltering added to the web.config.

launchsettings:

  "profiles": {
    "MyDomain.MySubdomain.MyApp.Web": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "dotnetRunMessages": true,
      "applicationUrl": "https://localhost:7085;http://localhost:5085"
    },

0

There are 0 answers