2016-10-05 8 views
0

У меня возникли проблемы с настройкой экземпляра dev на веб-сайте C# с использованием SQL Server. Я привык делать все это с MySQL, поэтому для меня это немного чуждо. Прочитав решение проблем с MS, моя настройка выглядит нормально, но это все еще не работает, поэтому я явно не знаю.Не удается подключиться к серверу SQL Server

Я установил файл web.config, чтобы указать на новую базу данных, используя следующую конфигурацию;

<connectionStrings> 
    <add name="External" 
     connectionString="Data Source=91.208.99.2,33114; Initial Catalog=sqldatabase;User ID=sqluser;Password=1234567890" 
     providerName="System.Data.SqlClient"/> 
</connectionStrings> 

Однако соединение все еще не выполняется со следующей ошибкой. Любые идеи, что я мог бы потерять?

[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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)]

Вот остальная часть трассировки стека;

System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +6569310 
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +717 
    System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +6595752 
    System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +219 
    System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +6598063 
    System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +6598643 
    System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) +942 
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +1162 
    System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +72 
    System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +6601897 
    System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +103 
    System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +2102 
    System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +116 
    System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +1079 
    System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +6606391 
    System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +233 
    System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +278 
    System.Data.SqlClient.SqlConnection.Open() +239 
    SubSonic.SqlDataProvider.CreateConnection(String newConnectionString) +48 
    SubSonic.AutomaticConnectionScope..ctor(DataProvider provider) +58 
    SubSonic.SqlDataProvider.GetDataSet(QueryCommand qry) +383 
    SubSonic.StoredProcedure.GetDataSet() +64 
    _usercontrols_layout_header.Page_Load(Object sender, EventArgs e) in \\sambad\sites\dev.aciemgroup.co.uk\public_html\_usercontrols\layout\header.ascx.cs:57 
    System.Web.UI.Control.LoadRecursive() +71 
    System.Web.UI.Control.LoadRecursive() +190 
    System.Web.UI.Control.LoadRecursive() +190 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3178 
+0

Действительно ли серверный сервер работает на сервере? Проблема может быть на самом сервере. Можете ли вы запустить «SQL Management Studio» на сервере и подключиться к базе данных, используя те учетные данные, которые у вас есть в строке подключения? – Sparrow

+0

Поиск на этом сайте * sql-server При установлении соединения * возникла связанная с сетью или конкретная ошибка экземпляра *. Есть буквально десятки (если не больше) существующих вопросов (и ответов), которые могут помочь решить эту проблему. –

+0

Да, я могу подключиться к серверу с помощью SQL Management Studio. Когда я установил это, хост должен был добавить мой локальный IP-адрес, чтобы разрешить удаленный доступ к SQL-серверу, возможно, веб-серверу IP запрещен доступ? Однако они создали всю среду, поэтому я надеюсь, что она все еще ждет ответа на этот билет. – user1235285

ответ

0

сама ошибка уже сказал неправильная конфигурация сервера на web.config:

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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Поскольку он говорит: "Сервер не найден", строка подключения SQL Server, вероятно, станет основной проблемой.

Если у вас есть имя экземпляр/сервер SQL Server на удаленном сервере (например, SERVERNAME), добавьте его после того, как IP-адрес или имя компьютера, непосредственно перед портом сервера для подключения с:

<connectionStrings> 
<add name="External" connectionString="Data Source=91.208.99.2\SERVERNAME,33114; Initial Catalog=sqldatabase;User ID=sqluser;Password=1234567890" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

В случае SQL Экспресс экземпляр сервера, строка соединения должна быть, как это одна:

<connectionStrings> 
<add name="External" connectionString="Data Source=91.208.99.2\SQLEXPRESS,33114; Initial Catalog=sqldatabase;User ID=sqluser;Password=1234567890" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

о HTTP 500 ошибка при добавлении Network Library=DBMSSOCN в строке соединения на web.config см MS KB ссылку ниже для более подробной информации в зависимости от Код HResult. Если код HResult возвращает 0x8007000d, вам необходимо правильно изменить целевой сервер внутри строки подключения, как описано выше.

Строка соединения после добавления сетевой библиотеки должен быть как:

<connectionStrings> 
<add name="External" connectionString="Data Source=91.208.99.2\SERVERNAME,33114;Network Library=DBMSSOCN;Initial Catalog=sqldatabase;User ID=sqluser;Password=1234567890" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

PS: Проверьте и измените дополнительные/машины разрешения безопасности/пользователя для удаленного сервера, если таковые имеются, обеспечить соединение с базой данных работает после этого.

Ссылки:

MS KB 942055 - https://support.microsoft.com/en-us/kb/942055

The right connection string for Remote SQL server for C#

ConnectionString for remote SQL Server

0

Спасибо всем за вход, оказывается хостинговой компании (несмотря на утверждая, что все было хорошо), были в вине. Очень жаль, что потратил впустую какое-то время, было более чем слегка разочаровывающе заставить их признать ошибку тоже! В конце концов, мы настраиваем отдельный MS SQL-сервер и прекрасно подключаемся.

Смежные вопросы