Ich bin Gerät testen meine Konfigurationsdatei für eine Win-Forms-Anwendung. In der LocalTestRun.testrunconfig ich habe es festgelegt, um die app.config zu kopieren. Ich habe die Environment.CurrentDirectory
überprüft, während der Test ausgeführt wurde, und die Datei hat diese zusätzliche Verbindungszeichenfolge auch nicht. Dies ist die Testmethode:Warum hat ConfigurationManager.OpenMappedExeConfiguration eine zusätzliche Verbindungszeichenfolge, die nicht in der Datei enthalten ist?
[TestMethod]
public void Configuration_ConnectionStrings_Connect()
{
Console.WriteLine(Environment.CurrentDirectory);
Assert.IsTrue(System.IO.File.Exists("App.Config"));
var configFileMap = new ExeConfigurationFileMap(){ ExeConfigFilename = "App.Config"};
var config= ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
foreach (ConnectionStringSettings connectionString in config.ConnectionStrings.ConnectionStrings)
{
//Assumes all connections are to Sql server, test must be updated if not
Assert.AreEqual("System.Data.SqlClient",connectionString.ProviderName,"Test was only designed for SQL clients");
using (var cn=new System.Data.SqlClient.SqlConnection(connectionString.ConnectionString))
{
cn.Open();
Assert.AreEqual(System.Data.ConnectionState.Open,cn.State);
}
}
}
jedoch Als ich iterieren die config.ConnectionStrings.ConnectionStrings
ich eine zusätzliche Konfigurationsstring haben, die nicht in der Datei ist:
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
Dies ist nicht und war nie ein asp.net Projekt.
Hier ist die Config-Datei:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="HLIT_Ticketing.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<connectionStrings>
<add name="HLIT_Ticketing.Properties.Settings.HomeQConnectionString"
connectionString="Data Source=******\*****;Initial Catalog=*****;Persist Security Info=True;User ID=*****;Password=******"
providerName="System.Data.SqlClient" />
</connectionStrings>
<userSettings>
<HLIT_Ticketing.Properties.Settings>
<setting name="AssociateRole" serializeAs="String">
<value>Associate</value>
</setting>
<setting name="DeveloperRole" serializeAs="String">
<value>Developer</value>
</setting>
</HLIT_Ticketing.Properties.Settings>
</userSettings>
Wo ist diese zusätzliche Verbindungszeichenfolge aus Richtung?
+1 Ich habe mich schon immer gefragt, jetzt weiß ich, danke :) –