2014-02-11 2 views
70

Я скопировал предыдущий проект и переименовал его. Как только я успешно переименовал все пространства имен и правильно построил. Я получил следующее сообщение об ошибке, когда я запустил приложение:Ошибка при переименовании проекта 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.

Я не могу найти какие-либо места со старым именем, в котором он упоминает об ошибке.

+0

У меня такая же проблема. Какие-либо ответы или удача выясняют решение? –

+0

Я просто удалил проект и снова начал работу. Только переименование классов и пространства имен. – Zapnologica

ответ

150

Я имел этот вопрос несколько раз уже, так что я буду записывать процедуру я следую также как напоминание для себя:

  1. Заменить все названия старого раствора с новым.
  2. Перейдите Свойства по каждому проекту и изменить имени сборки и пространства имен по умолчанию поля на новое имя решения.
  3. Перейдите в папку решений и переименуйте все папки проекта с новым именем решения.
  4. Удалить все файлы под bin и obj папки.
  5. Решение не сможет загружать проекты. Удалите все проекты и добавьте их снова.
  6. Реконструкция проекта.
+74

Спасибо. Удаление содержимого папки «bin» было всем, что мне нужно. – Nicolas

+2

Я удалил определенные библиотеки DLL, ссылающиеся на исходный проект и Boom! снова в деле. Благодаря! – dunwan

+1

Последовало несколько переименований How-Tos, и это тот, который, наконец, работал. Спасибо – madvora

12

У меня была такая же проблема после переименования сборки решения.

Я решил, что OwinStartupAttritbute ссылается на мое новое имя сборки.

Далее следует удалить старую сборку, найденную в папке bin.

8

Я не переименовал свое решение, но я столкнулся с этой проблемой. Я не мог найти решение, размещенное в любом месте. У меня было два отдельных проекта с классом запуска owin на том же сервере. Я просто дал каждому другому «Дружественное имя», как это было предложено в сообщении об исключении, и решил его. Я нашел хорошую статью об этом:

Owin Startup Class

Чтобы переименовать его, все, что вам нужно сделать, это добавить строку на OwinStartup так:

[сборка: OwinStartup («ProductionConfiguration», TypeOf (StartupDemo.ProductionStartup2))]

29

Эта проблема возникнет, если у вас есть две сборки в той же папке bin, которая содержит класс OwinStartup. Обычно у вас не должно быть двух классов OwinStartup для одного и того же веб-приложения.

Вы можете решить эту проблему, проверив папку с вашим bin. Если после переименования сборка со старым именем осталась в папке bin, вы получите эту ошибку. Чтобы решить проблему, удалите все из папки bin.

1

Добавить следующий тег на веб-конфигурации appsetting

<appSettings> 
    <add key="owin:AutomaticAppStartup" value="false" /> 
</appSettings> 
0

У меня есть два ASP .NET MVC 5 проектов, Project1 и Project2.

Проблема в том, что DLL двух проектов находится в одной папке bin, и оба используют промежуточное ПО Owin. Это означает, что Project1.dll и Project2.dll существуют в той же папке bin Project2.

Поскольку мне нужен только один из них в каждом проекте, я просто удаляю неиспользованный файл Project1.dll в папке bin проекта Project2.

Смежные вопросы