2013-10-29 105 views
1

我在我的項目中有一個配置文件,由於某種原因我無法讀取它。過去類似的代碼對我來說很有用。我不知道我在這裏做錯了什麼。我想知道如果有人能夠看看,並讓我知道如果我做錯了什麼。請幫助...無法讀取配置文件

這裏是我的代碼:

KeyValueConfigurationCollection settings; 
    Configuration config; 
    ExeConfigurationFileMap configFile = new ExeConfigurationFileMap(); 
    configFile.ExeConfigFilename = "myProject.exe.config"; 
    config = ConfigurationManager.OpenMappedExeConfiguration(configFile, ConfigurationUserLevel.None); 
    settings = config.AppSettings.Settings; 
    this.logFilePath = settings["logFilePath"].Value; 
    this.logFilePath = settings["logFileName"].Value; 

這裏是我的配置文件:

​​

由於提前, Harit

+2

什麼是你實際收到的錯誤? – Caleb

+0

您的配置中缺少AppSettings集合。您只有配置了<配置>的根級別。但是您在代碼中請求(sp?)。 – thst

+0

謝謝 - 我錯過了。它現在工作正常... :) –

回答

0

您的配置中缺少AppSettings集合。您只有配置的根級別。但是你在代碼中請求。

你的配置應該是從不同的web.config

<configuration> 
    <appSettings> 
     <add key="logFilePath" value=".//Results//" /> 
     <add key="logFileName" value="Output.xml" /> 
    </appSettings> 
</configuration> 
+0

謝謝!這對我有效。 :) –

2

harit,嘗試修改您的結構:

<?xml version="1.0"?/> 
<configuration> 
    <appSettings> 
    <add key="logFilePath" value=".//Results//" /> 
    <add key="logFileName" value="Output.xml" /> 
    <appSettings> 
</configuration> 

使用ConfigurationManager創建了這個確切結構存在的要求。它應該按照計劃進行上述變更。

+0

謝謝!這對我有效。 :) –

+0

快樂的日子 - :-) –

0

讀值:

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); 
fileMap.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + @"second.config"; 
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap,ConfigurationUserLevel.None); 

ConfigurationSection mySection = config.GetSection("countoffiles"); 
if (config.AppSettings.Settings.Count > 0) 
{ 
    System.Configuration.KeyValueConfigurationElement customSetting = 
     config.AppSettings.Settings["countoffiles"]; 
    if (customSetting != null) 
    { 
     Response.Write(customSetting.Value); 
    } 
    else 
    { 
     Console.WriteLine("No countoffiles application string"); 
    } 
}