2016-04-25 5 views
0

Ich habe eine einfache ASP.NET MVC-Website lokal mit einem SQL Server Express entwickelt. Jetzt muss ich die Website über FTP auf meinen Hosting-Provider bereitstellen (keine WebDeploy oder ähnliches).Entwickeln mit SQL Server Express und Probleme mit der Bereitstellung auf (Full) SQL Server

Wenn ich die notwendigen Verzeichnisse und Dateien (ist, Inhalt, Schriftarten, Scripts, Ansichten, Global.asax, Web.config) laden, bekomme ich folgende Fehlermeldung:

[Win32Exception (0x80004005): The system cannot find the file specified]

[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)]

Es ist ein Full SQL Server 2014, nicht die Express Edition, auf dem Server, von dem ich weiß, dass er mich irgendwohin führen sollte, aber ich bin vollkommen verloren und konnte keine Hilfe finden, weder hier auf SO noch anderswo. Bitte beachten Sie, dass es einige verwandte Fragen gibt, aber keine davon scheint dieses Problem anzugehen.

Ich habe bereits die Verbindungszeichenfolge in der Konfigurationsdatei bearbeitet und auf die Datenbank mit dem Management Studio zugegriffen. Ich kann die Verbindung zwischen der Website und dem DB-Server nicht überprüfen (es ist ein einfaches Webhosting, kein VPS), aber ich gehe davon aus, dass es funktionieren sollte, da es ein riesiges Hosting-Unternehmen ist und ich diesen Fehler seit zwei Tagen konstant bekomme .

Ich habe zuvor das gleiche Projekt ohne Probleme auf Azure bereitgestellt (hauptsächlich, weil diese Bereitstellung mehr oder weniger als ein Mausklick war).

+2

Sie haben wahrscheinlich einige Hinweise auf SQL Server Express in Ihrer Konfigurationsdatei .... – logixologist

+1

Sie erwähnen, dass Sie die Verbindungszeichenfolge bearbeitet, aber haben Sie den Provider-Namen aktualisiert? – Nikki9696

+0

@logixologist Ich habe das ganze Projekt nach irgendwelchen Vorkommnissen von 'Express' durchsucht und es scheint nicht der Fall zu sein. Gibt es einen besseren Weg, es zu überprüfen? – Pavel

Antwort

0

Ich habe es geschafft, alle Probleme mit meiner Konfiguration basierend auf den Kommentaren von @logixologist und @ Nikki9696 zu lösen, danke euch beiden sehr. Ich werde alle notwendigen Schritte in diese Antwort zusammenfassen, nur für den Fall, dass jemand anderes sie auch hilfreich findet.

bearbeiten Verbindungszeichen Eintrag

<add 
    name="ApplicationDbContext" 
    connectionString="Server=__server__;Database=__db__;User ID=__user__;Password=__password__;" 
    providerName="System.Data.SqlClient" 
/> 

ich auch den Namen falsch gehabt haben - es muss der Name des DB-Kontext sein (e) im Projekt verwendet.

public class ApplicationDbContext : DbContext 
{ 
... 

Als nächstes suchte ich das ganze Projekt für den Begriff localdb und es in Web.config wieder gefunden in einem Block defaultConnectionFactory ein paar Zeilen über die angerufene: In meinem Fall ist es der Name der Klasse von DbContext abgeleitet ist connectionStrings:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    ... 

fand ich eine blog on MSDN das beschreibt, was man bearbeiten muss. Ich verließ aus nur den integratedSecurity Parameter, so meine neue defaultConnectionFactory Block wie folgt aussieht:

<entityFramework> 
    <defaultConnectionFactory type=“System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework“> 
     <parameters> 
     <parameter value=“Data Source=.; Integrated Security=True; MultipleActiveResultSets=True“ /> 
     </parameters> 
    </defaultConnectionFactory> 
    ... 

Vorsicht: Wenn die XML direkt aus dem Blog Kopieren Sie die richtigen Klammern anstelle der dort verwenden müssen (oder Sie werden bekomme einen unerklärlichen Fehler 500, genau wie ich es getan habe).

Und das war es, die bereitgestellte Site verbindet sich jetzt ohne Probleme mit dem SQL Server.

(Das ist, was ich wirklich hasse ASP.NET Zeug - die ganze Zeit spart man durch die Entwicklung schnell und effizient verschwendet auf versuchen, herauszufinden, wie das verdammte Ding zu implementieren, weil man einfach nicht eine anständige und bekommen kann Komplette Stück Informationen an einem Ort.)

Verwandte Themen