Ich arbeite an einer Asp.Net MVC 4-Anwendung, in der ich SignalR 2.0.1 verwende, und ich habe sie mit der Owin Startup-Klasse zugeordnet, und es hat zunächst einwandfrei funktioniert.
Als ich plötzlich versuchte, meine App neu zu IAppbuilder
erstellen, wurde darauf hingewiesen, dass der Typ-Namespace nicht gefunden werden konnte.
Es folgt meine Startklasse
using Microsoft.Owin;
using Owin;
using WhiteBoardApp;
namespace WhiteBoardApp
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
Ich habe auch das Owin
Paket installiert und konnte aus bestimmten Gründen die Owin Startup-Klasse nicht finden. Deshalb habe ich einfach eine normale Klasse hinzugefügt und alle erforderlichen Referenzen hinzugefügt. Darf ich wissen, wo ich einen Fehler mache?
c#
asp.net-mvc-4
signalr
owin
Tu es
quelle
quelle
Ich hatte ein ähnliches Problem. Aber stattdessen verursachte Owin offensichtlich ein Problem mit Microsoft.Owin
Hat nicht funktioniert, auch nicht
Update-Package Owin
ABER
hat gut für mich funktioniert, danke.
quelle
Die IAppBuilder-Schnittstelle befindet sich unter dem Owin-Paket. Fügen Sie einfach eine Referenz in Ihre Klassendatei ein:
Und wieder aufbauen. Ihr Projekt wird dies aufgreifen.
Ich habe keine Ahnung, warum VS das nicht aufgegriffen hat, aber es hat nicht geklappt. Nachdem ich diesen Verweis zu meinem Projekt hinzugefügt hatte, passte alles zusammen.
quelle
Beim Erstellen meines Projekts ist das gleiche Problem aufgetreten. Hier sind die Schritte, die zur Behebung meines Problems beigetragen haben:
Solution Explorer
und suchen Sie nach Ihrem ProjektReferences
; Sie sollten Warnungen auf der problematischen Referenz sehenReferences
und öffnenManage NuGet Packages
Microsoft.Owin
; Nach dem Laden wird angezeigt, dass es bereits installiert ist (es ist, aber es wurde falsch installiert. Überprüfen der Eigenschaften> Version in Schritt 2 zeigt0.0.0.0
)Force uninstall, even if there are dependencies on it
Probleme
Microsoft.Web.Infrastructure
Alternativen
Hier sind die Alternativen, über die ich gelesen habe, um diese Art von Problem zu beheben.
Viel Glück.
quelle
Mein Visual Studio 2013 hat aus irgendeinem Grund nicht erkannt, dass die Referenzpfade vorhanden sind. Das gelbe Ausrufezeichen vor den Referenzen wurde für alle hinzugefügten Pakete angezeigt. Ich habe ../packages/ überprüft, aber alle Dateien waren vorhanden. Ich habe auch die .csproj-Datei geöffnet, die auf die richtigen Pfade verweist.
Das Schließen und Öffnen der Lösung führte zu einer Reihe von Fehlern und konnte die in der Lösung enthaltenen Projekte nicht laden.
Durch einen Neustart von Visual Studio 2013 wurde der Tag aus unerklärlichen Gründen gespeichert.
quelle
Das folgende Äquivalent von using in F # zeigt ein Problem beim Ausblenden des IAppBuilder. Es stellt sich heraus, dass die Owin-Bestimmung als unvollständige System.Web.Http.Owin-Referenz interpretiert wurde, obwohl auf die Owin.dll verwiesen wurde, die den Owin-Namespace bereitstellt.
Das Problem wurde behoben, indem die Verwendungen wie folgt neu angeordnet wurden:
... zugegeben, dies kann ein Fehler sein, der dem F # -Compiler eigen ist, und Namenskonflikte werden in C # und anderswo besser behandelt.
quelle
In meinem Fall habe ich die Projektordner und den Speicherort der vs-Lösungsdatei (.sln) verschoben. Nachdem ich die Projekte erneut hinzugefügt hatte, befand sich auf Lösungsebene ein Paketordner, und einer befand sich in einem Projektunterordner. Auf diese Weise wurden in diesem Projekt die relativen Paketordner-Links in der .csproj-Datei durcheinander gebracht.
Die Neuinstallation oder andere Tipps zum Nuget-Paketmanager in diesem Thread waren hilfreich. Ich habe festgestellt, dass nach der Neuinstallation einiger Pakete in meinem Git-Quellcode diff der Pfad des Paketordners in der csproj-Datei geändert wurde.
Vor
<HintPath>packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
Nach
<HintPath>..\packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
Wenn Sie also dasselbe Problem ausführen und viele Nuget-Pakete haben, ist es möglicherweise einfacher, die gesamte Lösung zu schließen, die csproj-Datei (en) in einem Texteditor wie vscode zu öffnen und die entsprechenden Links durch Suchen und Ersetzen zu korrigieren . Speichern, schließen, öffnen Sie die Lösung in VS und stellen Sie die Nuget-Pakete wieder her. Das sollte den Trick machen. (In jedem Fall sollten Sie den lokalen Paketordner auf Projektebene löschen, damit das Projekt wirklich fehlschlägt, wenn es nicht die richtigen Pakete erhält.)
quelle
Es ist ein Bestellproblem.
using Microsoft.Owin; using Owin;
Führt dazu, dass Microsoft.Owin zuerst definiert wird, dann wird Owin unter dem bereits importierten Microsoft-Namespace gefunden. Wenn Sie mit der Maus über Owin fahren, um Owin zu verwenden, sollten Sie sehen, dass es erneut in Microsoft.Owin aufgelöst wurde. Außerdem wird die IDE bei Verwendung von Owin als redundante, nicht verwendete Referenz ausgegraut.
Tun:
using global::Owin;
Dies stellt klar, dass der Compiler unter bereits definierten Namespaces (z. B. Microsoft. Namespace) nicht nach Owin suchen soll.
quelle
http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr
Suchen Sie nach dem von Ihnen verwendeten Visual Studio. Den folgenden Kommentar finden Sie
Hinweis: Wenn Sie Visual Studio 2012 verwenden, ist die Vorlage SignalR Hub Class (v2) nicht verfügbar. Sie können stattdessen eine einfache Klasse namens ChatHub hinzufügen.
Hinweis: Wenn Sie Visual Studio 2012 verwenden, ist die Vorlage für die OWIN-Startklasse nicht verfügbar. Sie können stattdessen eine einfache Klasse namens Startup hinzufügen.
quelle