2013-11-28 4 views
11

Ich bin neu zu signalisieren r und ich versuche, eine grundlegende Chat-Anwendung in C# Visual Studio 2012 zu erstellen, aber ich bekomme folgenden Fehler.Fehler in owin Startup-Klasse Visual Studio 2012

The following errors occurred while attempting to load the app. 
- No assembly found containing an OwinStartupAttribute. 
- The discovered startup type 'SignalRTutorials.Startup, SignalRTutorials, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 
    conflicts with the type 'Microsoft.VisualStudio.Web.PageInspector.Runtime.Startup, Microsoft.VisualStudio.Web.PageInspector.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 
Remove or rename one of the types, 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. 

ich geschaffen habe 3 Dateien:

1) erste ist Letschat.cs Klasse:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Microsoft.AspNet.SignalR; 
using Microsoft.AspNet.SignalR.Hubs; 
namespace SignalRTutorials 
{ 
    [HubName("myChatHub")] 
    public class LetsChat:Hub 
    { 
     public void send(string message) 
     { 

      Clients.All.addMessage(message); 

     } 
    } 
} 

2) zweite Datei chat.aspx als

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Chat.aspx.cs" Inherits="SignalRTutorials.Chat" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.6.4.min.js"></script> 
    <script src="Scripts/jquery-1.6.4-vsdoc.js"></script> 
    <script src="Scripts/jquery-1.6.4.min.js"></script> 
    <script src="Scripts/jquery.signalR-2.0.0.js"></script> 
    <script src="Scripts/jquery.signalR-2.0.0.min.js"></script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <script type="text/javascript"> 

      $(function() 
      { 
       var IWannaChat=$.connection.myChatHub; 
       IWannaChat.client.addMessage=function(message){ 

        $('#listMessages').append('<li>'+message+'</li>'); 
       }; 
       $("#SendMessage").click(function(){ 
        IWannaChat.server.send($('#txtMessage').val()); 
       }); 
       $.connection.hub.start(); 
      }); 


     </script> 
    <div> 
    <input type="text" id="txtMessage" /> 
     <input type="text" id="SendMessage" value="broadcast" /> 
     <ul id="listMessages"> 



     </ul> 
    </div> 
    </form> 
</body> 
</html> 

3) Klasse Benannt als Startup.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Threading.Tasks; 
using System.Web; 
using System.Web.Routing; 
using Microsoft.AspNet.SignalR; 
using Microsoft.Owin.Security; 
using Owin; 


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

    } 
} 

Ich weiß nicht, wo ich falsch mache, jede Hilfe in dieser Hinsicht wird geschätzt.

+0

Welche Versionen von .NET und SignalR verwenden Sie? – nphx

+0

.net 4.5 Visual Studio 2012 und Signal r 2.0 –

+3

Können Sie versuchen, ein Assembly-Level-Attribut [Assembly: OwinStartup (typeof (SignalRTutorials.Startup))], um zu sehen, ob das das Problem löst? – Praburaj

Antwort

14

War mit dem gleichen Problem konfrontiert. Versucht, ein Attribut auf Baugruppenebene hinzuzufügen, wie von @ Praburaj vorgeschlagen

Sie können Folgendes versuchen.

using Microsoft.AspNet.SignalR; 
using Microsoft.Owin.Security; 
using Owin; 

//add the attribute here 
[assembly: OwinStartup(typeof(SignalRTutorials.Startup))] 

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

    } 
} 
6

hatte ich das gleiche Problem, aber auf Visual Studio 2013

die \ ist und \ obj Ordner auf dem Projekt entferne dann wieder aufzubauen es das Problem behoben.

2

Sie müssen nur OWIN StartUp Klasse hinzufügen [d. StartUp1.cs] in Ihr Projekt.

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

[assembly: OwinStartup(typeof(UserInterfaceLayer.Hubs.Startup))] 

namespace UserInterfaceLayer.Hubs 
{ 
    public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.MapSignalR(); 
     } 
    } 
} 
0

Wenn Sie Ihr Projekt erstellt und es dann umbenannt haben, kann dieses Problem auftreten. Versuchen Sie, alle Dateien im bin-Ordner zu löschen und führen Sie dann Ihr Projekt aus. Das hat für mich funktioniert.