OwinStartupAttribute Hatası içeren bir derleme bulunamadı


88

Bu hata

Uygulamayı yüklemeye çalışırken aşağıdaki hatalar oluştu. - OwinStartupAttribute içeren bir derleme bulunamadı. - Verilen tür veya yöntem 'yanlış' bulunamadı. Montajı belirtmeyi deneyin. OWIN başlangıç ​​keşfini devre dışı bırakmak için web.config dosyanıza appSetting owin: AutomaticAppStartup değerini "false" değeriyle ekleyin. OWIN başlangıç ​​Derlemesini, Sınıfını veya Yöntemini belirtmek için, web.config dosyanıza tam nitelikli başlangıç ​​sınıfı veya yapılandırma yöntemi adıyla appSetting owin: AppStartup ekleyin.

Tarihte şimdiye kadar oluşturulmuş en yüz yakıcı çirkin hata sayfasında ekranımda görünüyor.

görüntü açıklamasını buraya girin

Yapılandırmaya owin: AutomaticAppStartup ekleyerek sayfadaki talimatları izlemeye çalıştım.

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

bu sorunu çözmedi. Herhangi bir öneri?


6
Bunun yerine işe yarayıp yaramadığını <add key="owin:AppStartup" value="false"></add>deneyebilir misin <add key="owin:AutomaticAppStartup" value="false"></add>? Ayrıca, yardımcı olacak bazı bağlantılar: OWIN Başlangıç ​​Sınıfı Algılama ve Owin web.config'de başlangıç ​​sınıfı sağlar (otomatik başlatma keşfi yoktur)
Keyur PATEL

Bu hile yaptı. Kaynaklar için de teşekkürler. Minnettarlığım @KeyurPATEL.
NVA

2
Bence sen startup.cs eksik dosya
Kurkula

2
Kurkula kesinlikle haklı. ASP.net kimlik doğrulama sistemini başlangıçta atmak için kurmadınız. Projenin kökündeki startup.cs dosyasını kesinlikle kaçırıyorsunuz. Bu kodu Microsoft.Owin'i kullanarak .------------- dosyasına koyun; Owin kullanarak; [derleme: OwinStartupAttribute (typeof (YOURPROJECT.Startup))] ad alanı YOURPROJECT {genel kısmi sınıf Başlangıç ​​{genel void Yapılandırması (IAppBuilder uygulaması) {ConfigureAuth (uygulama); }}}
Paras Parmar

Yanıtlar:


172

Bu kodu aşağıdaki resimde gösterildiği gibi etiketinin web.configaltına ekleyin <configuration>. Hatanız o zaman gitmiş olmalı.

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

Aşağıdaki Resmi Kontrol Edin


4
Çözüm bu veya en azından bu çözüm sorunumu çözdü. Lütfen bir yanıtı çözüm olarak işaretleyin. Bu en üstte olmalı ...
Mason

1
Teşekkürler, Bu işe yaradı ama birisi bu ayar değerini yanlış yaparak ne kaybettiğimi söyleyebilir mi?
IKriKan

84

Projede OWIN'den kurtulmak istedim:

  1. OWIN referanslarını ve Nuget paketlerini projeden sil
  2. Temizle ve Yeniden Oluştur projesi
  3. Uygulamayı çalıştır

Sonra OWIN hatası aldım. OWIN.dll hala bin / dizininde olduğundan bu adımlar işe yaramadı .

DÜZELTME:

  1. Bin / dizini manuel olarak silin
  2. Yeniden inşa projesi

13
lol - bin ve obj klasörlerini silmek her zaman garip bağımlılık hatalarının düzeltilmesidir
matt.fc

4
Daha önce owin nuget'i ekleyen SignalR nuget'i indirip denedim. Paketler silindi, ancak çalışmasını sağlamak için bin klasörünü de silmem gerekti.
mortb

SignalR'yi kurduktan ve çabayı iptal ettikten sonra buraya geldi. Teşekkür ederim.
John Gerdsen

Kolay ve hızlı. Benim için çalıştı
Dash

owin paketini kaldırmak da yardımcı olacaktır veya onlarla birlikte owin olan tüm dll'leri referanslardan kaldırmak yardımcı olacaktır
Heemanshu Bhalla

24

Owin'in başlamasını isteyenler <add key="owin:AutomaticAppStartup" value="false" />işe yaramayacak, ancak aşağıdakiler benim için çalıştı.

  1. Startup.Auth dosyanızda kısmi bir "Startup" sınıfınız varsa, projenizin kök dizininde başka bir kısmi Başlangıç ​​sınıfı oluşturun.

  2. o sınıfa işaret eden bir assembly owinstartup niteliği tanımlayın

  3. bir "Yapılandırma" yöntemi oluşturun

  4. uygulamanızı yeniden oluşturun

Ayrıca "Configuration" yöntemini oluşturabilir ve assembly özniteliğini Startup.Auth'a ekleyebilirsiniz, ancak bunu bu şekilde yapmak, Startup sınıfınızı C # sınıf tanımı bölmesinden yararlanarak ayrı tutmanıza olanak tanır. Daha fazlasını buradan okuyun: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods

Startup.cs dosyam şöyle görünüyordu:

using Microsoft.Owin;
using Owin;

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

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

Bu benim için çalıştı, projenin adında bir nokta olduğunda bunun gerçekleştiğini fark ettim. Dolayısıyla, ad alanı "ad alanı ProjeAdı Alanı.ApiRest" şeklindeyse, örneğinizdeki gibi bir derleme tanımlamak sorunu çözer.
karique


6

bahsettiğiniz sınıfta Yapılandırma yöntemine sahip olmayabilirsiniz

<appSettings>
<add key="owin:AppStartup" value="WebApplication1.App_Start.Startup"/>


3

Bu hatayı aldım çünkü kodda fazladan beyaz boşluk vardı

Onun yerine

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

Öyleydi

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


3

Projenizde Startup sınıfının oluşturulmuş olup olmadığını kontrol edin . Bu bir örnektir:

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'den yararlanmak için. Çözüm bu.
Paras Parmar

2

sadece değiştirmek

        using (WebApp.Start(url))

ile

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

sorunumu çözdüm. Başlangıç ​​adlı sınıf zaten uygulandı. @ robthedev tarafından yukarıda belirtildiği gibi


2

Web.config dosyasına aşağıdaki anahtarı eklemek kodu kaldıracaktır

<appSettings>

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

1

Doğru başlangıç ​​projesinin seçildiğini kontrol edin. Başlangıç ​​olarak bir web api projem vardı. Bu, bu hatayı yarattı.


1

Bu gönderinin eski olduğunu biliyorum ancak birisinin aynı hatayı araması durumunda, eklemeyi deneyin

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

etiketten sonra <appSettings>

ve daha sonra bir sonraki hata ortaya çıkarsa:

HTTP Hatası 401.0 - Yetkisiz hata mesajı

etiketin arkasına sonraki kodu ekleyin, <system.web>bu başlangıçta olabilir

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

Benim durumumda:

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


0

Çalışmayan tüm DLL'leri şubeden sildim, daha sonra çalışan şubemden çalışmayan tüm DDl'leri şubeme kopyaladım. Bu sorunu çözdü.


0

bu kodu <add key="owin:AutomaticAppStartup" value="false" /> Web.config içinde değil web.config dosyasına yapıştırmanız yeterlidir, iki webconfig vardır, bu nedenle Web.Config konsoluna yapıştırıldığından emin olun


0

signalr kullanmak istiyorsanız , projenize startup.cs Sınıfı eklemelisiniz

Projenize Sağ Tıklayın Sonra Yeni Öğe Ekleyin ve OWIN Başlangıç ​​Sınıfını Seçin

sonra Yapılandırma Yöntemi içinde Aşağıya Kod Ekle

app.MapSignalR();

Umarım senin için faydalı olur


0

Sonraki kodla Startup.cs sınıfını projenin köküne ekleyin :

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'a dağıtıyorsanız ve bu hatayı alırsınız. Sitedeki tüm dosyaları silin (web.config, appsettings.json veya kaybetmek istemediğiniz her şeyi yedekleyin) ve yeniden dağıtın. Azure portalının OWIN kullanması gerektiğini düşünmesine neden olan, sitede olmaması gereken bazı dll dosyaları vardır.


0

Aşağıdaki kodu web.config dosyanıza ekleyin ve ardından projeyi çalıştırın ...

    <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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.