Ошибка при переименовании проекта ASP.NET MVC
Я скопировал предыдущий проект и переименовал его. Как только я успешно переименовал все пространства имен и правильно построил. При запуске приложения я получил следующую ошибку:
The following errors occurred while attempting to load the app.
- The OwinStartup attribute discovered in assembly 'User Manager Interface' referencing startup type 'User_Manager_Interface.Startup' conflicts with the attribute in assembly 'Service Monitor Web Interface' referencing startup type 'Service_Monitor_Web_Interface.Startup' because they have the same FriendlyName ''. Remove or rename one of the attributes, or reference the desired type directly.
To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.
Я выяснил, что если я прокомментирую первую строку ниже, ошибка исчезнет.
//[assembly: OwinStartupAttribute(typeof(Service_Monitor_Web_Interface.Startup))]
namespace Service_Monitor_Web_Interface
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}
Я переименовал свое решение с User_Manager_Interface в Service_Monitor_Web_Interface.
Кажется, что я не могу найти места со старым именем, howwvel в ошибке, которую он упоминает.
Ответы
Ответ 1
У меня была эта проблема несколько раз, поэтому я запишу процедуру, которую я следую, также как напоминание для себя:
- Заменить все прежнее имя решения новым.
- Перейдите в Свойства в каждом проекте и измените поля Название сборки и По умолчанию пространства имен для нового имени решения.
- Перейдите в папку решений и переименуйте все папки проекта с новым именем решения.
- Удалите все файлы в папках bin и obj.
- Решение не сможет загружать проекты. Удалите все проекты и добавьте их снова.
- Восстановите проект.
Ответ 2
Эта проблема возникает, если у вас есть две сборки в одной папке bin, которые содержат класс OwinStartup. Обычно у вас не должно быть двух классов OwinStartup для одного и того же веб-приложения.
Вы можете решить эту проблему, проверив папку bin. Если после переименования сборка со старым именем осталась в папке bin, вы получите эту ошибку. Чтобы решить проблему, удалите все из папки bin.
Ответ 3
У меня была такая же проблема после переименования сборки решения.
Я решил, что OwinStartupAttritbute ссылается на мое новое имя сборки.
Далее следует удалить старую сборку, найденную в папке bin.
Ответ 4
Я не переименовал мое решение, но я столкнулся с этой проблемой. Я не мог найти решение, размещенное в любом месте. У меня было два отдельных проекта с классом запуска owin на том же сервере. Я просто дал каждому другому "Дружественное имя", как это было предложено в сообщении об исключении, и решил его. Я нашел хорошую статью по этому поводу:
Класс запуска Owin
Чтобы переименовать его, все, что вам нужно сделать, это добавить строку в OwinStartup. Итак:
[сборка: OwinStartup ( "ProductionConfiguration", typeof (StartupDemo.ProductionStartup2))]
Ответ 5
Добавьте следующий тег в настройку веб-конфигурации
<appSettings>
<add key="owin:AutomaticAppStartup" value="false" />
</appSettings>
Ответ 6
Просто очистите решение, оно должно сделать трюк;)
Ответ 7
У меня есть два проекта ASP.NET MVC 5, Project1 и Project2.
Проблема заключается в том, что DLL двух проектов находится в одной папке bin и оба используют промежуточное ПО Owin. Это означает, что Project1.dll и Project2.dll существуют в той же папке bin Project2.
Так как мне нужен только один из них в каждом проекте, я просто удаляю неиспользуемый файл Project1.dll в папке bin проекта Project2.