Freigeben über Netzwerk (INTRANET) mit .NET Anwendung

Ich entwickle eine Winforms-Anwendung mit .NET 2.0 und Sql server 2005. Ich möchte nur die Werte von einem anderen PC aus dem Computer, in dem Sqlserver-database vorhanden ist, zurückrufen.

Die appetsettings, die ich in App.Config gemacht habe, ist wie folgt:

<configuration> <appSettings> <add key="DatabasePath" value="Data Source=192.168.1.34,1433;Network Library=DBMSSOCN; Initial Catalog=testingdb;User ID=sa;pwd=pass;"/> </appSettings> </configuration> 

Aber ich kann keine Werte (Name & Alter) vom server auf einen anderen Computer abrufen. Bitte geben Sie mir eine Lösung.

Der folgende Fehler wird beim Abrufen angezeigt:

 See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server. When connecting to SQL server 2005, this failure may be caused by the fact that under the default settings SQL server does not allow remote connections. (provider: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustserverCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at OnlineTest.AdminUser.adminenter() in F:\Online Test - Intranet\OnlineTest\OnlineTest\AdminUser.cs:line 63 at OnlineTest.AdminUser.btnok_Click(Object sender, EventArgs e) in F:\Online Test - Intranet\OnlineTest\OnlineTest\AdminUser.cs:line 56 at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** Loaded Assemblies ************** mscorlib Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.42 (RTM.050727-4200) CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll ---------------------------------------- OnlineTest Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Program%20Files/SystemOrganization/Setup1/OnlineTest.exe ---------------------------------------- System.Windows.Forms Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.42 (RTM.050727-4200) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.42 (RTM.050727-4200) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.42 (RTM.050727-4200) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Configuration Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.42 (RTM.050727-4200) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Xml Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.42 (RTM.050727-4200) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- System.Data Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.42 (RTM.050727-4200) CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll ---------------------------------------- System.Transactions Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.42 (RTM.050727-4200) CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll ---------------------------------------- System.EnterpriseServices Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.42 (RTM.050727-4200) CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll ---------------------------------------- ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled. For example: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box. 

   

Ihr SQL-server akzeptiert den Verbindungsversuch nicht. Könnte Ihre Verbindungszeichenfolge sein, siehe http://www.connectionstrings.com/ . Könnte Ihr server-Setup sein. Benötigen Sie weitere Informationen, um effektiv zu beheben.

alt text http://img408.imageshack.us/img408/3558/40512042.png

Hier sind ein paar Dinge, die Sie auf dem Computer ausprobieren können, auf dem SQL server ausgeführt wird:

1) Windows-Firewall

  • Stellen Sie sicher, dass Sie sqlservr.exe in der Firewall zulassen. Diese ausführbare file ist normalerweise bei $PROGRAMFILES$\Microsoft SQL server\MSSQL.1\MSSQL\Binn\sqlservr.exe

  • Die Anschlüsse 445 , 1433 und 1434 in der Intranetzone zulassen

  • Testen Sie Ihre Bewerbung. Jetzt finden und erlauben nur die Ports, die Ihre App verwendet, und blockieren den Rest

2) SQL server-Konnektivität

  • Öffnen Sie SQL server Configuration Manager

  • Im Abschnitt Native Client Configuration können Sie Shared Memory , TCP/IP und Named Pipes Protokolle aktivieren

  • Gleich danach ist die SQL server Network Configuration . Stellen Sie sicher, dass die oben genannten Protokolle dort aktiviert sind

  • Testen Sie Ihre Bewerbung. Abhängig von der Art, wie Sie eine Verbindung herstellen, deaktivieren Sie die Protokolle, die Sie nicht beabsichtigen zu verwenden

Auch, wie in duralais Antwort, stellen Sie sicher, dass SQL server auf Remote-Verbindungen erlaubt ist. Dies ist in der Regel standardmäßig, aber einen anderen Blick wert.