Ошибка Owin с использованием приложения ASP.NET MVC
У меня есть приложение ASP.NET, которое отлично работает на моей локальной машине. Я просто загрузил его на сервер, используя веб-развертывание. При попытке просмотра сайта я получаю следующую ошибку:
При попытке загрузить приложение произошли следующие ошибки.
- Атрибут OwinStartup, обнаруженный в сборке "Gators3", ссылающийся на тип запуска "Gators3.Startup", конфликтует с атрибутом в сборке "MyFirstProject2", ссылающимся на тип запуска "MyFirstProject2.Startup", потому что у них одно и то же имя FriendlyName ". Удалите или переименуйте один из атрибутов или обратитесь к нужному типу напрямую.
Чтобы отключить обнаружение запуска OWIN, добавьте appSetting owin: AutomaticAppStartup со значением "false" в вашем web.config.
Чтобы указать запуск, класс или метод OWIN, добавьте appSetting owin: AppStartup с полным классом класса запуска или имени метода настройки в вашем web.config.
Я попробовал поиск всего решения для строки "MyFirstProject2", но ничего не придумал. Сообщение дает пару предложений, но ни один из них ничего не значит для меня. Я не знаю, как "удалить или переименовать один из атрибутов или напрямую ссылаться на нужный тип", и я не вижу места в web.config для "добавления appSetting owin: AppStartup с полным запуском класс или имя метода конфигурации в вашем web.config."
Я нашел этот, но не совсем уверен, как его реализовать. Я также нашел [assembly: OwinStartupAttribute(typeof(Gators3.Startup))]
в моем Startup.cs
, но не уверен, что нужно делать.
Ответы
Ответ 1
Проблема в том, что файлы Gators3.dll и MyFirstProject2.dll находятся в одной папке (я думаю, это папка bin на вашем сервере), и оба используют промежуточное ПО Owin. Если вам не нужен MyFirstProject2.dll, самым простым способом было бы удалить эту сборку. Если вам это нужно, но без Owin - добавьте следующую строку в Web.config/app.config в проект MyFirstProject2:
<add key="owin:AutomaticAppStartup" value="False" />
Если вам нужно использовать Owin для двух проектов, настройте дружественные имена для них обоих.
Измените атрибут запуска Owin на что-то вроде:
attribute [assembly: OwinStartupAttribute("GatorsConfig", typeof(Gators3.Startup))]
И добавьте следующую строку в Web.config в разделе appSettings:
<add key="owin:appStartup" value="GatorsConfig" />
Измените атрибут запуска Owin на что-то как:
attribute [assembly: OwinStartupAttribute("MyFirstProject2Config", typeof(MyFirstProject2.Startup))]
И добавьте следующую строку в Web.config в разделе appSettings:
<add key="owin:appStartup" value="MyFirstProject2Config" />
Ответ 2
У меня была такая же проблема: удаление всего в папке bin и восстановление моего решения работало для меня. Но его можно комбинировать с переименованием атрибута сборки в начале класса startup
, давая ему имя Firendly, которое поможет различать оба файла запуска.
[assembly: OwinStartup("MyFriendlyNameForProject1",typeof(MyProject.Startup))]
Ответ 3
Очистите папку bin и папку obj. Снова создайте проект и запустите:)
Ответ 4
Удалите все, что говорит "MyFirstProject2" из папки bin, и перестройте решение. Он будет работать.
Ответ 5
У меня была такая же проблема, и я добавил следующий тег в веб-конфигурации:
<appSettings>
<add key="owin:AutomaticAppStartup" value="false" />
</appSettings>
Ответ 6
Кроме того, если вы публикуете решение для Azure:
1) щелкните правой кнопкой мыши и выберите "Опубликовать".
2) зайдите в Настройки и разверните "Параметры публикации файлов"
3) выберите "Удалить дополнительные файлы в месте назначения"
4) Опубликовать
Сработало у меня, после удаления файлов из папки obj и bin.
Ответ 7
Случается, когда вы ссылаетесь (по ошибке?) на проект с запуском owin внутри другого проекта с запуском owin. Исправить - удалить ссылки, bin, obj папки и перестроить.
Ответ 8
Вот что я сделал:
-
Поскольку у меня есть 3 проекта в одном решении, мне пришлось открыть все папки bin каждого проекта и удалить все файлы там.
-
Постройте каждый проект один за другим.
-
Постройте все решение.
Проблема решается с моей стороны.
Ответ 9
Удалить файлы Bin, построить каждый проект по одному.
Ответ 10
Удалите старые данные во временных файлах по следующему пути
C:\Users\[user]\AppData\Local\Temp\Temporary ASP.NET Files\vs