2016-12-28 10 views
2

Я занимаюсь разработкой и тестированием основного приложения aspnet с использованием SSL. Запуск сайта в IIS Express отлично работает. Итак, я подумал, что могу увидеть, что нужно, чтобы запустить его на IIS 10. Как и ожидалось, есть несколько проблем.Ошибка ядра aspnet: авторизация не удалась для запроса в фильтре «Microsoft.AspNetCore.Mvc.RequireHttpsAttribute»

Прежде всего, мне нужно уточнить, что я успешно разместил приложение без SSL aspnet в IIS, поэтому все биты, необходимые для основного приложения aspnet, есть. Но в случае приложения SSL все, что я получаю, - это сообщение в браузере, в котором говорится, что произошла ошибка. Также ничего не полезно в журналах веб-сервера.

Итак, мой первый тест состоял в том, чтобы попытаться запустить приложение непосредственно в опубликованной папке с помощью dotnet xxx.dll. Вот когда я заметил ошибку авторизации.

services.Configure<MvcOptions>(options => 
    { 
    options.Filters.Add(new RequireHttpsAttribute()); 
    }); 

enter image description here

enter image description here

+1

, что можно было бы ожидать, если у вас нет установки сертификата ssl для сайта в IIS. –

+0

У меня установлен собственный сертификат, который используется пулом приложений - No Managed Code. В любом случае, ошибка не включает даже IIS в этот момент. Ошибка запускается основным приложением с использованием веб-сервера Kestrel. – Greg

+0

Я теперь украсил Домашний контроллер атрибутом [Разрешить анонимный], но при этом возникает одна и та же ошибка. – Greg

ответ

1

Я решил проблему путем создания сертификата PFX, как описано на блоге Шона Wildermuth в (https://wildermuth.com/2016/10/26/Testing-SSL-in-ASP-NET-Core). Как только это будет сделано, чтобы изменить файл Program.cs следующим образом:

enter image description here

Как только это сделано, повторно опубликовать свой проект (команда: DotNet опубликовать) и переместить файл PFX в опубликованную папку.

Теперь, когда вы запускаете dotnet MyFileName.dll в опубликованной папке, он может получить доступ к сертификату, и все работает. (Ну, это было для меня)