Используя Visual Studio 2017, я создал ASP.NET Core Web App (Core 2.1). В Visual Studio у него нет файла web.config, но он отлично работает, используя F6 для запуска.
Я принимаю это в принимающей компании DiscountASP.NET. Чтобы опубликовать его на хосте, я использую функцию веб-развертывания Visual Studio, которая прекрасно работает.
В моей корневой папке на DiscountASP.NET внезапно появляется файл web.config, как показано здесь:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\CoreWbApSH01.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: a532f7f5-c3da-40e3-9158-00bcc9555660-->
Пока все хорошо. Все отлично работает.
МОЯ ПОТРЕБНОСТЬ: теперь, когда посетитель заходит на сайт, я хочу принудительно установить http на https. У хостинговой компании есть способ сделать это, объяснил в своей статье здесь:
База знаний DASP
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Этот выше xml действительно работал хорошо. Но чтобы заставить его работать, я сначала ввел Web Deploy в мою папку на DiscountASP.NET, затем вручную FTP в эту папку и вручную отредактировал там более-менее эфемерный файл web.config, вставив сегмент <rewrite>
.
Это прекрасно работает, за исключением того, что каждый раз, когда я редактирую веб-сайт и переустанавливаю, мне приходится вручную подключаться по FTP и снова редактировать файл web.config.
У меня такой вопрос: В Visual Studio 2017 есть ли способ, которым я могу программным способом автоматически вставить этот сегмент в эфемерный файл web.config, который появляется при развертывании в DiscountASP.NET?