Класс запуска OWIN отсутствует


Я получаю эту ошибку, так как мой проект не может найти ссылку для OWIN класс запуска. Я даже установил все справочные пакеты OWIN через Nuget, все еще получая ту же проблему. Я использую Visual Studio 2012 и MVC4.

следующие ошибки возникли при попытке загрузить приложение.

  • не найдена сборка, содержащая атрибут OwinStartupAttribute.
  • не найдена сборка, содержащая запуск или [AssemblyName].Запуск класс. Чтобы отключить обнаружение запуска OWIN, добавьте набор приложений owin: AutomaticAppStartup со значением "false" в вашей сети.конфиг. Чтобы указать начальную сборку OWIN, класс или Метод, Добавьте appSetting owin: AppStartup с полным классом запуска или имя метода конфигурации в вашем интернете.конфиг.
19 211

19 ответов:

создать один класс с именем Startup это поможет вам..

public class Startup
{
   public void Configuration(IAppBuilder app)
   {
      app.MapSignalR();
   }
}

в нашем проекте нам не нужна была функциональность OWIN, поэтому мы удалили все ссылки owin из начальной версии ASP.NET проект шаблона MVC. Проблема возникла после удаления класса запуска OWIN.

проблема была дополнительная библиотека owin в моей папке bin. Когда я удалил их, проблема была решена. Вы должны удалить их, удалив папку bin. Очистить Решение не удаляет эти библиотеки DLL.

каким-то образом IIS все еще выполняется библиотека OWIN dll, когда они находятся в папке bin.

в Visual Studio 2013 RC2 есть шаблон для этого. Просто добавьте его в папку App_Start.

enter image description here

шаблон создает такой класс:

using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(WebApiOsp.App_Start.Startup))]

namespace WebApiOsp.App_Start
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
        }
    }
}

Если вы не хотите использовать запуск OWIN, это то, что вы должны добавить в свой web.конфигурации file:

под AppSettings добавить следующую строку:

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

Это, как это должно выглядеть в вашей сети.config:

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

посмотрите на Startup.cs файл, возможно, Вам не хватает одного из них. Этот файл является точкой входа для OWIN, поэтому похоже, что это отсутствует. Взгляните на OWIN Startup class здесь, чтобы понять, что происходит.

Как указывает ваша ошибка, вы можете отключить это в интернете.настройки, выполнив следующие действия...

чтобы отключить обнаружение запуска OWIN, добавьте набор приложений owin: AutomaticAppStartup со значением "false" в вашем сеть.конфигурации

сначала вы должны создать свой загрузочный файл и после того, как вы должны указать локаль этого файла в интернете.config, внутри тега appSettings с этой строкой:

<add key="owin:AppStartup" value="[NameSpace].Startup"/>

это решило мою проблему.

У меня была эта проблема, поймите, что это не то, что было неправильно в случае OP, но в моем случае у меня был класс запуска, он просто не находил его по умолчанию.

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

Как предполагает ошибка, по соглашению он ищет [имя сборки].Запуск для класса... так и быть убедитесь, что пространство имен для вашего класса запуска совпадает с именем сборки. Исправлена проблема для меня.

я попробовал большинство рекомендуемых исправлений здесь, и все еще не мог избежать сообщения об ошибке. Я, наконец, выполнил комбинацию из нескольких рекомендуемых решений:

  1. добавлена эта запись в верхней части моего web.конфигурации:

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

  2. развернул узел ссылки моего проекта и удалил все, что содержало строку OWIN. (Я чувствовал себя в безопасности, так как моя организация не является (и не будет) активным поставщиком OWIN в будущем)

затем я нажал Run и моя домашняя страница загружается до.

моем случае? У меня был файл запуска, но он исключен в проекте. Я просто включил его и ошибка ушла.

в моем случае я переименовал проект и изменить его структуру папок. Я обнаружил, что обновление RootNameSpace и AssemblyName в .файл csproj, в котором была вызвана ошибка, разрешил ошибку. Если вы изменили пути вашего проекта, я бы рекомендовал проверить это также.

<RootNamespace>Company.Product.WebAPI</RootNamespace>
<AssemblyName>Company.Product.WebAPI</AssemblyName>

также можно получить это исключение (даже если у вас есть правильно настроенный класс запуска), если выполняется через IIS Express и ваш виртуальный каталог настроен неправильно.

когда я столкнулся с этой проблемой, решение было просто нажать кнопку "создать виртуальный каталог" на вкладке " веб " свойств проекта (с помощью Visual Studio 2013)

С этим можно столкнуться и в Visual Studio 2015, когда вы используете Azure AD с проектом MVC. Здесь он создает файл запуска в качестве запуска.Автор.cs в папке App_Start, но он будет отсутствовать

[assembly: OwinStartup(typeof(D_ToolsWebApp.Startup))]

Так что добавьте его и вы должны быть хорошо идти. Это происходит до начала пространства имен.

хотя я не могу полностью объяснить, почему это решило проблему для меня, я столкнулся с такой проблемой после того, как я изменил свой проект API, чтобы построить отдельный \debug и \release папки. Как только я вернул это изменение обратно, чтобы построить один \bin папка вещи начали работать.

Я написал свой опыт здесь:не удается запустить класс запуска OWIN в IIS Express после переименования ASP.NET файл проекта

Я столкнулся с этой проблемой после экспериментов с SignalR, а затем удалить его из проекта. Для решения мне пришлось удалить содержимое папки " bin " для сайта на удаленном сервере, а затем снова опубликовать.

вы действительно пытаетесь добавить OWIN в свой проект или это что-то неожиданное?

  1. в случае, если вы хотите добавить OWIN, добавление класса запуска-это путь.

  2. в случае не нужна любая ссылка на Owin:

    удалить Owin.dll из папки /bin.

    долг.dll-это тот, кто пытается определить класс запуска.

просто проверьте, что ваш packages.config файл возвращается (если он исключен, в проводнике будет отображаться красный символ отсутствия входа). По какой-то странной причине мой был исключен и вызвал эту проблему.

Я продолжал получать ту же ошибку, когда я начал свой проект с помощью панели браузера Link в VS2013. Но, когда я запустил свой проект в режиме отладки, он будет работать. Я не мог понять, почему и как заставить Панель управления браузером работать. Я проверил файл запуска, это было нормально, добавил строку appSetting, как описано в некоторых ответах "", но ничего не сработало.

по-видимому, то, что я делал неправильно, было нажатие на неправильную ссылку в панели браузера. Все Ссылки на проекты решений отображаются на панели мониторинга браузера, но работает только ссылка на запуск проектов. Вам нужно нажать на ссылку запуска проекта.

пример: у меня есть 2 проекта, оба показывают в панели браузера, но только тот, который отмечен как запуск проекта будет работать (показывает как полужирный в обозревателе решений.) Я думал, что это может помочь кому-то сделать очевидное, это стоило мне 2 дней, чтобы наткнуться на очевидное.

Я имел эту проблему, когда у меня последний на ТФС в то время как другие проекты были открыты в нескольких экземплярах против. У меня уже есть все исправления выше. Открытие против решил проблему.

в моем случае я вошел в ftp-сервер. Взял резервную копию текущих файлов на FTP-сервер. Удалить все файлы вручную с FTP-сервера. Чистое решение, передислоцированный код. Это сработало.