2017-02-14 5 views
0

у меня есть # консольное приложение C в Main() У меня естьC# консольного приложения не удается подключиться SQL Server каждый первый раз после того, как восстановить

using (TransactionScope scope = new TransactionScope()) 
{ 
    var connStr = ConfigurationManager.ConnectionStrings["HQMemberConnStr"].ConnectionString; 
    using (SqlConnection conn = new SqlConnection(connStr)) 
    { 
     conn.Open(); 

     // some modification to DB 
    } 
    scope.Complete(); 
} 

Каждый раз, когда я восстановить проект и запустить исполняемый файл двойным щелчком мыши. Я получаю следующее исключение.

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.

Странно, после закрытия консоли. Если я снова дважды щелкнул EXE-файл. Он отлично работает с тех пор.
Ну, пока я не перестрою проект еще раз, тогда у меня будет это исключение в первый раз, когда я снова запустим приложение, которое довольно раздражает.

Кроме того, если я перестрою, запустите приложение Visual Studio 2013, он будет вести себя корректно.

Я проверил часть комментария. Независимо от того, я комментирую их или нет. Похоже, что это не имеет никакого отношения к проблеме.

Я также закрываю брандмауэр, чтобы проверить, не связано ли это с проблемой, но не повезло.

Я хочу заставить его вести себя правильно каждый раз, но я не уверен, что я сделал не так.

Мои App.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <connectionStrings> 
    <add name="HQMemberConnStr" 
     connectionString="Server=.;Database=HQMember;User Id=sa;Password=****;" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 

Мой .net версии 4.5
SQL Server Enterprise x64

+0

Вы пытались вывести (на консоль) и проверить строку соединения непосредственно перед вызовом 'Open()'? – Oliver

+0

@ChetanRanpariya: Из-за отправленного кода и описанной проблемы эта ошибка встречается в строке 'conn.Open()'. Если вы регулярно программируете с помощью EF и SQL Server, это хорошо известное сообщение об ошибке, которое всегда происходит в '.Open()' и неправильной сконфигурированной строке подключения или не запущенном SQL-сервере. Тем не менее здесь это не так просто, потому что ошибка исчезает при втором запуске инструмента без изменения App.config (насколько я могу прочитать из вопроса). – Oliver

+1

Может ли какая-то антивирусная программа вызывать проблемы, например, сканировать новые программы, прежде чем разрешать им получать доступ к сети? – sgmoore

ответ

0

Попробуйте отключить антивирусную программу.

Это может вызвать проблемы, например, сканирование новых программ, прежде чем разрешить им доступ к сети.