Bei Verwendung von Hangfire kann die Verbindungszeichenfolge in Startup.cs übergeben werden. Datei kann nicht als Datenbankfehler angehängt werden

9

Ich verwende Hangfire in meiner ASP.NET MVC Web App, die erfolgreich installiert wurde. Ich möchte das gleiche LocalDb verwenden, um in der Warteschlange befindliche Jobs zu speichern, die Hangfire aus der Warteschlange entfernen und verarbeiten soll, wie ich es gewohnt war, Daten zu speichern. Wie dem auch sei, ich lief in den unten genannten Fehler, als ich seinen ConnectionString oder Name in Web.config in Startp.cs angegeben habe. Ich hatte keine Probleme hinzuzufügen, Löschen von Aktualisierungsdaten in der gleichen LocalDb vor dem Abbrennen.

%Vor%

Meine Projektlösung heißt "Hangfire.Highlighter"

%Vor%     
jerryh91 14.01.2015, 20:48
quelle

4 Antworten

16

Ich weiß, das ist alt - aber es ist schon neun Monate her, und ich habe mir darüber auch die Haare rausgehauen - und ich habe mich dazu entschlossen, darüber zu schreiben hier .

Meine Lösung bestand darin, einfach einen schnellen und schmutzigen DbContext zu erstellen, auf die richtige Verbindungszeichenfolge zu verweisen und Database.CreateIfNotExists im Konstruktor aufzurufen:

%Vor%

In der HangfireBootstrapper.Start () Methode mache ich so etwas:

%Vor%

Sie wissen nicht, warum Hangfire mit LocalDb so schwer ist - vielleicht kann es nur mit SQL-Instanzen umgehen? So oder so funktioniert das für mich, neue Teammitglieder und neue dev / staging / prod-Instanzen, die aufstehen.

    
Jack 30.08.2015 02:20
quelle
1

Ich weiß auch, dass das alt ist, aber ich bin kürzlich dazu gekommen. Hier ist mein Fix:

  1. Wechseln Sie in Visual Studio zu "Ansicht - & gt; SQL Server-Objekt-Explorer '
  2. Verbinden Sie sich mit der Datenquelle, wenn sie nicht bereits verbunden ist. Im obigen Beispiel war es "(LocalDb) \ v11.0"
  3. Rechtsklick auf 'Datenbanken' - & gt; 'Neue Datenbank hinzufügen'
  4. Füllen Sie den Datenbanknamen = Beispiel: 'aspnet-Hangfire.Highlighter-20150113085546' oder wie auch immer Sie die Datenbank in der Verbindungszeichenfolge benannt haben.
  5. Datenbankspeicherort füllen = Dies sollte das Datenverzeichnis in Ihrer Anwendung sein, 'App_Data' für das MVC-Projekt.

Dies hat das Problem in meinem Fall behoben.

    
Kevin R. 21.12.2015 20:42
quelle
0

Ist die DB bereits angelegt? Können Sie versuchen, ein anderes Connection String Format zu verwenden? "Server =. Database = HangFire.Highlighter; Trusted_Connection = True;"

    
user2613228 16.01.2015 14:56
quelle
0

Jacks Antwort hat bei mir nicht funktioniert, weil ich auf dieses Problem gestoßen bin: In der Konfigurationsdatei der Anwendung wurde keine Verbindungszeichenfolge namens

gefunden

Ich habe es mit den folgenden Änderungen arbeiten:

  1. Entfernen Sie "name=" aus der Zeichenfolge im Basisinitialisierer. Danke an: Zypern
  2. Dies verschiebt den Fehler in den Aufruf von UseSqlServerStorage . Anstatt also "HangfireContext" an sie zu übergeben, kopiere ich einfach die Verbindungszeichenfolge aus dem Dummy-Datenbankkontext.

Kompletter Einrichtungscode:

%Vor%     
Florian Winter 08.02.2017 18:13
quelle