2016-12-26 5 views
4

Ich habe eine SQL Server Express-Instanz auf einem Computer mit IP 192.168.66 in einem Heimnetzwerk.SQL Server auf Remotecomputer

Ich habe TCP/IP auf Port 49170 aktiviert und die eingehende Regel in der Windows-Firewall hinzugefügt.

Ich habe eine Anwendung, die ich auf verschiedenen Computern in meinem Netzwerk installieren möchte. Wenn ich meine Anwendung in Visual Studio testen, kann ich keine Verbindung zu meiner Instanz auf dem Remotecomputer herstellen.

<connectionStrings> 
    <add name="EquipamentoDal.Properties.Settings.ExtinguisherMngConnectionString" 
     connectionString="Data Source=192.168.1.66,49170;Initial Catalog=ExtinguisherMng;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Der Servername ist DESKTOP-HU51203\EXPRESS. Was habe ich falsch gemacht, um keine Verbindung herstellen zu können?

+0

Was ist die Ausnahme? Können Sie die IP-Adresse vom Remote-PC aus anpingen? – w0051977

+0

Sie verwenden 'Integrate security = true', sind die Benutzerrechte in diesem Computer ausreichend? Haben Sie einen Benutzer imitiert? – McNets

+0

Integrierte Sicherheit funktioniert wahrscheinlich nicht in einem Heimnetzwerk. – Crowcoder

Antwort

3

Ihre Verbindungszeichenfolge gibt nicht die benannte Instanz an, mit der Sie eine Verbindung herstellen. Sie gibt nur die IP-Adresse an. Dies bedeutet, dass Clients eine Verbindung zur Standardinstanz anstelle einer benannten Instanz herstellen.

standardmäßig SQL Server Express ist anders 'Standard' Versionen von SQL Server (Standard, Workgroup, Developer und Enterprise Editions) wie folgt konfiguriert:

  • blockieren eingehende Remote-Verbindungen - dies muss explizit aktiviert werden in dem SQL Server Configuration Manager
  • Verwenden Sie ein benannte InstanzSQLEXPRESS statt konfiguriert als
  • SQL Server Express Standardinstanz aufgerufen ist auch einzigartig bei der Unterstützung AttachDb und LocalDb - die anderen SKUs/Editionen unterstützen die AttachDb und LocalDb Funktionen nicht.

In Ihrem Fall haben Sie bereits von Remote-Verbindungen aktiviert und Sie sind nicht AttachDb oder LocalDb verwenden, so müssen Sie nur Ihr Client konfigurieren zu einer benannten Instanz verbinden:

Sie geben den Namen Instanz in Ihrer Verbindungszeichenfolge mit dem Format <host>\<instance name>,<port> in den Data Source= oder Server= Parameter, z Data Source=foo\SQLEXPRESS,1433 oder in Ihrem speziellen Fall:

Data Source=192.168.1.66\SQLEXPRESS,49170;Initial Catalog=ExtinguisherMng;Integrated Security=True 

Sie erwähnten, dass Sie dies auf einem Heimnetzwerk tun, was es ist unwahrscheinlich, bedeutet, dass Sie eine Active Directory oder Kerberos verwenden, und da SQL Server Express aussetzen nicht die Passwörter, die es für seine Service-Identität verwendet (noch können sich Benutzer als NT AUTHORITY\NetworkService über das Netzwerk authentifizieren, bedeutet dies, dass Sie Integrated Security=True (oder Integrated Security=SSPI nicht verwenden können, was gleichbedeutend ist, aber SSPI ist der bevorzugte Wert), müssen Sie einen expliziten SQL Server Login-Benutzernamen festlegen und Passwort in Ihrer Verbindungszeichenfolge

  1. Erstellen Sie ein neues Log-Objekt im Server (Sie müssen zuerst entweder lokal oder aus der Ferne irgendwie an den Server anmelden, um das sa Konto, wenn es vorhanden ist)
  2. die Anmeldeinformationen der neuen Anmeldung Geben von Integrated Security=True mit User Id=<userName>;Password=<password>;
ersetzen
+0

Ich habe bereits mit 192.168.1.66 \ SQLEXPRESS, 49170 zuvor versucht und hatte das gleiche Problem –

+0

@RolandoAzevedo Was ist die genaue Fehlermeldung, die Sie bekommen? – Dai

+1

Server wurde nicht gefunden oder nicht verfügbar ,, .... kann nicht so konfiguriert werden, dass Remoteverbindungen zugelassen werden. –

Verwandte Themen