2013-05-07 2 views
4

Пожалуйста, смотрите код ниже:App.config - LocalSqlServer строка подключения

Public Shared Sub SyncConnectionStrings() 
    Dim strCon As String 
    Dim tyDatabase As typeDatabase 
    Dim boolConfigChanged As Boolean 
    'Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) 
    Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) 
    Dim strConnectionString As ConnectionStringSettings    
    For Each strConnectionString In ConfigurationManager.ConnectionStrings 
     'More code here, but irrelevant for this question. 
    Next 
End Sub 

код перебирает все строки подключения в файле app.config. В строке app.config имеется три строки подключения, но найдены четыре строки подключения. Где находится: LocalSqlServer (это ConfigurationManager.ConnectionStrings.Name), определенный?

ответ

8

Он определен в глобальном файле Machine.config, расположенного по адресу

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\CONFIG". 

Оно генерируется при установке Net.Framework и нужно с помощью инструментов, которые работают на ASPNETDB

Если вы не нужно, вы можете попробовать, чтобы добавить это к вашему app.config

<connectionStrings> 
<clear/> 
..... 

или же

<connectionStrings> 
<remove name="LocalSqlServer" /> 

но я действительно предлагаю ничего не менять в Machine.Config, если вы не знаете побочных эффектов.

+1

Спасибо +1. Вы знаете, есть ли способ обхода строк соединения app.config? – w0051977

+0

Ответ обновлен, не совсем уверен в побочных эффектах, но вы можете попробовать, и если что-то пойдет не так, восстановите первоначальный статус – Steve

2

В вашем Machine.config возможно иметь больше, чем просто LocalSqlServer. , например. Я просто побежал мое приложение на компьютер с подключением MySql в Machine.config

Вы можете использовать свойство ElementInformation в ConnectionStringSetting, чтобы определить, где пришли:

  foreach (ConnectionStringSettings c in ConfigurationManager.ConnectionStrings) 
     { 
      ElementInformation elementInfo = c.ElementInformation; 
      String source = elementInfo.Source; 

      if (source == null) 
      { 
       //Machine.config 
      } 
      else 
      { 
       Console.WriteLine("{0} {1} {2}", c.Name, elementInfo.Source, c.ConnectionString); 
      } 
     } 
Смежные вопросы