2014-07-16 21 views
16

Beni yalnızca bir dolu yaparak düzeltilen "Microsoft.AspNet.Signal.Core" hatalarını bulamamaya başlatan SignalR kullanan bir Web API projem var. Visual Studio'da yeniden oluşturun.SignalR artık çalışmıyor "Bir OwinStartupAttribute içeren derleme bulunamadı"

Bu soruyu denemek ve düzeltmek için Nugget'ta SignalR ve OWIN'i yükselttim, ancak şimdi her zaman "Uygulamayı yüklemeye çalışırken aşağıdaki hatalar oluştu. - Bir OwinStartupAttribute içeren derleme bulunamadı. - Başlangıç ​​içeren bir derleme bulunamadı." veya [AssemblyName] .Startup sınıfı "

Ekibimin bu hatayı almasındaki tek kişi ben değilim - aynı kod diğer makinelerde düzgün çalışıyor. Ben de web.config için AppStartup anahtarını ekleyerek denedim

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Microsoft.Owin; 
using Owin; 

[assembly: OwinStartup(typeof(MyProject.Startup))] 
namespace MyProject 
{ 
    public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.MapSignalR(); 
     } 
    } 
} 

:

Bir Başlangıç ​​sınıfı var

<add key="owin:appStartup" value="MyProject.Startup, MyProject" /> 

Ben benim WebAPI projesinde aşağıdaki referanslar:

Microsoft.AspNet.SignalR.Core (2.1.0.0) 
Microsoft.AspNet.SignalR.SystemWeb (2.1.0.0) 
Microsoft.Owin (2.0.2.0) 
Microsoft.Owin.Host.SystemWeb (2.0.2.0) 
Microsoft.Owin.Security (2.0.2.0) 
Owin (1.0.0) 

Windows 8 64Bit

üzerinde IIS 8.5 kullanıyorum
+0

Ben de statik ve yöntem olmak sınıfını gerektirir düşünüyorum: Projenin Web.config dosyasında ekleme Takip edilenler onu çözdüm. – Anders

+0

Webconfig'inizde "" bulunmadığından emin olun. Bu satırı silin veya değeri "doğru" olarak ayarlayın. –

+0

Bir OWIN başlangıç ​​sınıfı ekleyin. Detaylar burada: http://stackoverflow.com/a/23995265/1818795 – Justin

cevap

2

Nuget'in SignalR bağımlılıklarını düzgün bir şekilde yükseltmediği görülüyor (versiyonun menzil içinde olup olmadığını kontrol etmeli ve güncellemeyi engellememelidir), böylece OWIN takımlarının 2 versiyonu çözümde kullanılıyordu.

Yani WebAPI Projesi: SignalR 2.1.0 ve Microsoft.Owin 2.0.2.0

ve başka projede: SignalR 2.1.0 ve Microsoft.Owin 2.0.1.0

Visual Studio yapmaz Web proje yüklendiğinde OWIN bir hata fırlatır (Microsoft.Owin 2.0.1.0 derlemeleri Web Project bin klasörüne kopyalandı), böylece de sürüm uyumsuzlukları almak.

Düzeltmek için güncel olmayan projede "Microsoft.Owin -version 2.0.2.0 paketini güncelleştirmek" gerekiyordu, her şeyi temizleyip yeniden oluşturmam gerekiyordu.

GÜNCELLEME:

Yine aynı sorun oluyor. SinyalR 2.1.0 ve Owin 2.0.2.0 arasında bazı uyumsuzluk sorunu olduğunu düşünüyorum.

29

Kimlik Framework 2.0 tümleştirmesi sırasında bu hatayı aldım.

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

Teşekkürler! Bu benim için düzeltildi. – AdamC