У меня был код конфигурации OwinStartup, работающий отлично, и затем он перестал работать. К сожалению, я не совсем уверен, что именно я сделал, чтобы заставить его перестать работать, и мне действительно трудно понять это.
Чтобы убедиться, что у меня есть основы, я дважды проверил, чтобы убедиться, что у меня есть
[assembly:OwinStartup(typeof(WebApplication.Startup))]
атрибут назначен правильно и убедился, что у меня нет appSetting для owin: AutomaticAppStartup, для которого установлено значение false, поэтому я установил один из них в значение true, чтобы быть безопасным, поскольку там раньше ничего не было.
<add key="owin:AutomaticAppStartup" value="true" />
Я также попытался специально вызвать appSetting:
<add key="owin:appStartup" value="WebApplication.Startup" />
Прежде чем он перестал работать, я обновил пакеты Microsoft.Owin.Security NuGet до 2.0.2, поэтому я попытался вернуть их к 2.0.1 (это было болезненно), но это ничего не изменило. У меня установлен WebActivator в проекте, и я использую его для начальной загрузки других вещей, но я проверил это на новом шаблоне WebApplication, и он работает там, поэтому я не думаю, что это виновник.
Я также попытался удалить свой класс запуска и с помощью Visual Studio добавить новый, используя тип класса запуска OWIN в «Добавить новый элемент», который тоже не вызывается. Затем я попытался добавить второй класс Startup, поскольку я знаю, что он вызовет исключение, если определено более одного атрибута OwinStartup, но он не выдает там никаких исключений.
Не уверен, что еще попробовать. Какие-нибудь мысли?
Обновить
Оказывается, что Resharper удалил ссылку на Microsoft.Owin.Host.SystemWeb, когда я использовал ее для удаления неиспользуемых ссылок.
источник
Ответы:
Убедитесь, что вы установили
Microsoft.Owin.Host.SystemWeb
пакет в проект. Этот пакет необходим для обнаружения запуска в приложениях, размещенных на IIS. Для получения дополнительной информации вы можете обратиться к этой статье .источник
Startup.Configuration(IAppBuilder)
?Если вы обновили более старую версию MVC, убедитесь, что у вас нет
в вашем
web.config
. Это подавит вызов логики запуска.Вместо этого измените его на
true
Я понимаю, что вы уже упоминали об этом, но иногда люди (как я) не читают весь вопрос и просто прыгают к ответам ...
Где-то вдоль линии - когда я обновился до MVC 5, это было добавлено, и я никогда не видел его до сегодняшнего дня.
источник
Альтернативный ответ на оригинальную обсуждаемую проблему - Оуин "не стреляет". В моем случае я часами думал, что это не стрельба из-за невозможности установить в нем точку останова.
При отладке запуска OWIN в visual studio
IIS Express - запуск «F5» приведет к сбою кода запуска OWIN
IIS - Запуск «F5» не прекратится до тех пор, пока не будет загружен код OWIN (и global.asax). Если вы присоединитесь к W3P.exe, вы сможете войти в него.
источник
Если у вас возникли проблемы с отладкой кода в
Startup
классе, у меня тоже была эта проблема - или я так и думал. Код работал, но я полагаю, что это происходит до того, как отладчик подключился, поэтому вы не можете установить точки останова в коде и посмотреть, что происходит.Вы можете доказать это, создав исключение в
Configuration
методеStartup
класса.источник
СОВЕТЫ ОТЛАДКИ
Если отладка не работает, попробуйте использовать IIS Express или попробуйте метод ниже для локального IIS
Использование локального IIS
По какой-то причине этот метод включает отладку этого метода:
Дополнительный совет
Может быть, это очистит кеш:
В web.config добавьте атрибут optimizeCompilations с ложным значением
<compilation debug = "true" ... optimizeCompilations = "false">
Запустить сайт
источник
optimizeCompilations="false"
работает для меняУ меня была похожая проблема, и очистка временных файлов ASP.NET исправила ее. Надеюсь, это кому-нибудь поможет.
источник
Temporary ASP.NET Files
содержимого папки и запуска автозапуска Owin.У меня такая же проблема. Пакет Microsoft.Owin.Host.SystemWeb был установлен, но во время установки NuGet по какой-то причине не удалось добавить dll в качестве ссылки. Убедитесь, что ваш проект имеет эту ссылку. Если нет, вы можете попробовать переустановить:
У меня была ошибка, как показано ниже при переустановке, но как-то это сработало:
источник
В моем случае пул приложений IIS не был установлен на v4. Это был v2.
Поменял AppPool на v4 и все было хорошо.
источник
У меня была такая же проблема, когда я добавил Овина в существующий веб-проект. В конце концов я обнаружил, что проблема заключается в следующем в файле web.config.
Удаление сборки = "*" вызывало проблему. Когда я удаляю эту строку, запускается код запуска Owin. Я в конечном итоге изменить его на следующее, и он работал отлично
источник
В моем случае путь вывода моего сайта кем-то изменился, IIS Express даже не загружает OWIN, и класс установки, конечно, не будет задействован. После того, как я установил выходной путь как «bin», он работает хорошо.
источник
В моем случае этот пакет Microsoft.Owin.Host.SystemWeb присутствует в проекте.
Но ниже двух тегов нет в web.config.
после их добавления все работает плавно.
источник
В моем случае мой web.config имел
Чтобы заставить его отступить к Оуэну, мне нужно было
источник
Я возился с большим количеством предложений на этот пост.
Я имел следующее, но все еще не мог приземлиться на точку останова. Создание исключения подтвердило, что код вводится.
Наконец, в отчаянии я посмотрел на свойства проекта->, а затем в разделе WEB я также установил флажок NATIVE CODE (ASP.NET уже должен быть проверен).
Это наконец исправило это для меня.
Примечание. Я использую Visual Studio 2017 Professional.
источник
Я не уверен, поможет ли это кому-то, но я выполнил все вышеизложенные решения (и из некоторых других публикаций) безрезультатно.
Проблема с моей стороны заключалась в том, чтобы поставить обратную косую черту в конец значения RedirectUri в web.config (без ума, я знаю!). RedirectUri - это параметр в UseOpenIdConnectAuthentication.
Итак, вместо:
Сделай это:
И обновил URL-адрес ответа в настройках приложения Azure.
Это каким-то образом заставляло запуск запускаться как ожидалось (возможно, очистил некоторый кеш), и точки останова теперь запускаются.
FYI. Я моделировал свой код отсюда: https://github.com/microsoftgraph/aspnet-connect-sample
источник
После преобразования библиотеки классов в проект веб-приложения я столкнулся с этим и стал упрямым. Оказалось, в моем
.csProj
файле, у меня было это:OutputPath
простоbin\
.источник
Для меня это было потому, что они не в одном пространстве имен. После того как я удалил свой AppStart из «project.Startup.AppStart» и позволил им обоим Startup.cs и Startup.Auth.cs с пространством имен «project.Startup», все вернулось к работе идеально.
Я надеюсь, что это поможет!
источник
Если вы видите эту проблему с хостингом IIS, но не во время отладки F5, попробуйте создать новое приложение в IIS.
Это исправило это для меня. (Windows 10) В конце концов, я удалил «плохое» приложение IIS и заново создал идентичное приложение с тем же именем.
источник
Я думаю, что некоторые люди пытались достичь вышеизложенного, что если вы хотите программно заставить свой OWIN-сервер «ожить», вы бы назвали что-то вроде этого:
Как только вы сделаете этот вызов, вы увидите вызов StartupMethod () в отладчике
источник
Я нашел следующую статью очень полезной:
https://weblog.west-wind.com/posts/2015/Apr/29/Adding-minimal-OWIN-Identity-Authentication-to-an-Existing-ASPNET-MVC-Application#MinimalCodeSummary
В моем случае мне пришлось установить следующее, прежде чем аутентификация Owin будет работать вместо аутентификации Windows:
источник
Это сработало для меня:
источник
Сначала добавьте класс аутентификации OWIN, а затем включите ключ OWIN: AutomaticAppStartup в файле web.config, например Теперь будет стрелять
источник