Не знайдено збірки, що містить помилку OwinStartupAttribute


87

Ця помилка

Під час спроби завантажити програму сталися такі помилки. - Не знайдено збірки, що містить OwinStartupAttribute. - Даний тип або метод 'false' не знайдено. Спробуйте вказати Асамблею. Щоб вимкнути виявлення запуску OWIN, додайте appSetting owin: AutomaticAppStartup зі значенням "false" у своєму web.config. Щоб вказати збірку, клас або метод запуску OWIN, додайте appSetting owin: AppStartup із повністю кваліфікованим класом запуску або методом конфігурації у своєму web.config.

з'являється на моєму екрані на найстрашнішій негарній сторінці помилок, коли-небудь створеній в історії.

введіть тут опис зображення

Я намагався слідувати інструкціям на сторінці, вставляючи Owin: AutomaticAppStartup в конфігурацію.

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

це не вирішило проблему. Будь-які пропозиції?


6
Замість того, <add key="owin:AppStartup" value="false"></add>щоб спробувати <add key="owin:AutomaticAppStartup" value="false"></add>чи побачити, чи це працює? Також кілька посилань на допомогу: OWIN Startup Class Detection та Owin забезпечують клас запуску в web.config (без автоматичного виявлення запуску)
Keyur PATEL

Це зробило трюк. Також дякую за ресурси. Моя вдячність @KeyurPATEL.
NVA

2
Думаю, вам бракує файлу startup.cs
Куркула

2
Куркула абсолютно прав. Ви не встановили систему автентифікації ASP.net, щоб просто викинути її під час запуску. Вам абсолютно не вистачає файлу startup.cs у корені проекту. Помістіть цей код у файл .------------- за допомогою Microsoft.Owin; використання Owin; [збірка: OwinStartupAttribute (typeof (YOURPROJECT.Startup))] простір імен YOURPROJECT {відкритий частковий клас Запуск {public void Configuration (додаток IAppBuilder) {ConfigureAuth (app); }}}
Парас Пармар,

Відповіді:


171

Додайте цей код web.configпід <configuration>тегом, як показано на малюнку нижче. Тоді ваша помилка повинна бути знищена.

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

Перевірте зображення нижче


4
Це рішення, або принаймні це рішення вирішило мою проблему. Позначте відповідь як рішення. Цей повинен бути на вершині ...
Мейсон,

1
Дякую, це спрацювало, але чи може хтось сказати мені, що я втрачаю, зробивши це значення параметра false?
IKriKan

83

Я хотів позбутися OWIN у проекті:

  1. Видаліть посилання OWIN та пакети Nuget з проекту
  2. Проект Clean & Rebuild
  3. Запустити додаток

Тоді я отримав помилку OWIN. Ці кроки не спрацювали, оскільки OWIN.dll все ще був у каталозі bin / .

ВИПРАВЛЕННЯ:

  1. Видаліть bin / directory вручну
  2. Відновити проект

12
lol - видалення папок bin та obj завжди є виправленням для дивних помилок залежності
matt.fc

4
Я раніше завантажив і спробував Nuget SignalR, який, у свою чергу, додав Owin Nuget. Пакети були видалені, але мені також довелося видалити папку bin, щоб вона працювала.
mortb

Прийшов сюди після встановлення SignalR та переривання починань. Дякую.
Джон Гердсен,

Легко і швидко. Працював у мене
тире

також допоможе видалення пакета owin або допоможе видалення всіх dll, що мають Owin із собою, з посилань
Heemanshu Bhalla

23

Для тих, хто хоче, щоб Owin стартував, <add key="owin:AutomaticAppStartup" value="false" />не буде працювати, але наступне працювало для мене.

  1. якщо у вашому файлі Startup.Auth є частковий клас "Startup", створіть ще один частковий клас Startup у кореневій частині вашого проекту.

  2. визначити атрибут owinstartup збірки, що вказує на цей клас

  3. створити метод "Конфігурація"

  4. відновити додаток

Ви також можете створити метод "Конфігурація" та додати атрибут збірки до Startup.Auth, але, роблячи це таким чином, ви можете тримати свій клас Startup відокремленим, використовуючи розділення визначень класу C #. Детальніше читайте тут: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods

Ось так виглядав мій файл Startup.cs:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(ProjectNameSpace.Startup))]

namespace ProjectNameSpace
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

Це спрацювало для мене, я зрозумів, що це трапляється, коли проект має крапку в його назві. Отже, якщо простір імен схожий на "простір імен ProjectNameSpace.ApiRest", тоді визначення збірки, як у вашому прикладі, вирішить проблему.
karique



3

Я отримав цю помилку, оскільки в коді було зайве пробіл

Замість

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

Це було

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


3

Перевірте, чи у вашому проекті створений клас Startup . Це приклад:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof({project_name}.Startup))]

namespace AuctionPortal
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

За користування перевагами ASP.net Identity. Це рішення.
Paras

2

просто замінюючи

        using (WebApp.Start(url))

з

        using (WebApp.Start<Startup>(url))

вирішив мою проблему. Клас Startup вже був реалізований. як згадано вище @robthedev


2

Додайте наступний ключ у Web.config, щоб видалити код

<appSettings>

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

1

Переконайтеся, що вибраний правильний проект запуску. У мене був веб-проект api як стартап. Це спричинило цю помилку.


1

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

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

після тегу <appSettings>

а якщо згодом з’явиться наступна помилка:

Помилка HTTP 401.0 - Несанкціоноване повідомлення про помилку

додайте наступний код після тегу, <system.web>який може бути на початку

<authentication mode="Forms"> <forms loginUrl="~/YourFolderName/yourFileName" timeout="1" /> </authentication>

У моєму випадку це:

<authentication mode="Forms"> <forms loginUrl="~/Login/Index" timeout="1" /> </authentication>


0

Я видалив усі бібліотеки DLL з гілки, яка не працювала, а потім скопіював усі DDls з моєї гілки, яка працювала, у мою гілку, яка не працювала. Це вирішило проблему.


0

просто вставте цей код <add key="owin:AutomaticAppStartup" value="false" /> у Web.config Ні. У web.config є два webconfig, тому будьте впевнені, що він буде вставлений у Web.Config


0

якщо ви хочете використовувати signalr, вам слід додати клас startup.cs у свій проект

Клацніть правою кнопкою миші у своєму проекті, потім додайте новий елемент та виберіть клас запуску OWIN

то всередині Метод конфігурації Додати код нижче

app.MapSignalR();

Сподіваюся, це буде для вас корисним


0

Додайте клас Startup.cs до кореня проекту з наступним кодом:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(ProjectName.Startup))]
namespace ProjectName
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

0

При розгортанні в Azure і з’являється ця помилка. Просто видаліть усі файли на сайті (зробіть резервну копію будь-якого web.config, appsettings.json або того, що ви не хочете втратити) і розгорніть знову. Залишилося кілька файлів dll, яких не повинно бути на сайті, що змушує портал Azure вважати, що йому потрібно використовувати OWIN.


0

Додайте код нижче у свій файл web.config, після чого запустіть проект ...

    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    </runtime>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.