Вся цель моего вопроса заключалась в том, чтобы мой сайт работал без использования f5 в Visual Studio и без подключения отладчика.
Решение, оказывается, простое.
Вы можете просто запустить его в Kestrel в консольном терминале.
Просто откройте терминал или командную строку в корне вашего проекта и введите:
dotnet run
Это запустит kestrel для вашего проекта и сообщит вам, на каком порту он находится. Затем вы можете нажать http://localhost:5000 (или указать порт) в своем браузере.
Обновление: вы также можете отключить свою зависимость от IIS Express во всем приложении и запустить f5 в Kestrel.
Сделать это:
- Щелкните правой кнопкой мыши свой проект и перейдите к свойствам
- Щелкните вкладку отладки
- Нажмите «Создать» рядом с раскрывающимся списком профилей.
- Назовите это Кестрел Дев
- Измените тип запуска на "Проект"
- Установите для аргументов приложения значение «dotnet run».
- Добавьте переменную среды для «ASPNETCORE_ENVIRONMENT».
- Установите значение «Развитие».
- Add an environment variable for "ASPNETCORE_URLS"
- Give it a value of "http://localhost:8080" or whatever url/port you want it to run on.
Повторите приведенные выше параметры для «Производство пустельги», но установите для ASPNETCORE_ENVIRONMENT значение «Производство».
ASPNETCORE_ENVIRONMENT используется для обработки ваших преобразований конфигурации json.
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
Так что, если вам нужен файл appSettings.json для разработки (локальной), подготовки и производства, вам нужно создать 3 файла appSettings.json.
appSettings.json
appSettings.Development.json
appSettings.Staging.json
appSettings.Production.json
Затем вы делаете файлы .Staging.Json и т. д. необязательными с опцией: true config выше.
Итак, в appSettings.json у вас есть все, что одинаково во всех средах.
Затем в appSettings.Development.json у вас могут быть вещи, которые вам нужны только при локальном запуске.
и т.д.
Вы создаете профиль для каждой среды, поэтому, если вы запускаете «Kestrel Development», он использует appSettings.Development.Json.
Если вы запускаете «Kestrel Staging», он использует appSettings.Staging.Json.
Если вы запускаете «Kestrel Production», он использует appSettings.Production.json.
Это также влияет на то, как ваш tagHelper работает в ваших представлениях MVC, например.
<environment names="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="~/css/site.css" />
</environment>
<environment names="Staging,Production">
<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
<link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
</environment>
В этом html, если вы используете «Kestrel Development», выводится html внутри тега среды для разработки.
Если вы используете Kestrel Production, то выводится html внутри тега среды для постановки,производства.
person
Ryan Mann
schedule
29.07.2016