這似乎是一個非常簡單的問題,但不適合我。我正在嘗試從web.config文件讀取連接字符串。當部署到IIS7時,從web.config文件讀取連接字符串
我有WCF服務應用程序有web.config文件。在web.config文件中,我定義了連接字符串。 然後,我在默認網站(安裝IIS7時提供的一個模板)下的IIS7上部署了wcf應用程序。
現在,當我們讀到的連接字符串,然後它不給我限定在WCF web.config文件中的連接字符串。不知何故,我無法訪問它。並且在調試的時候,我發現了一個連接字符串,它實際上不是我在wcf web.config中定義的連接字符串,但它是我不想要的默認網站連接字符串。
我要訪問我只定義了WCF的web.config文件的連接字符串。我陷入了困境。我嘗試了所有,但沒有運氣。作爲參考,我把我嘗試的代碼和web.config代碼也。
Web.Config代碼。
<configuration>
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="AzureDiagnostics">
<filter type="" />
</add>
</listeners>
</trace>
</system.diagnostics>
<appSettings>
<add key="ConnString" value=""/>
<!--<add key="ConnString" value=""/>-->
</appSettings>
<connectionStrings/>
<system.web>
<httpRuntime maxRequestLength="2097151"
useFullyQualifiedRedirectUrl="true"
executionTimeout="14400" />
<compilation debug="true" />
</system.web>
代碼讀取CONNSTRING
string connString = string.Empty;
string svcDir = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
DirectoryInfo rootDir = Directory.GetParent(svcDir);
string root = rootDir.FullName;
string webConfigFilePath = root + "\\Web.config";
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = webConfigFilePath;
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
var test = configuration.ConnectionStrings.ConnectionStrings;
string connectionString = "";
if (configuration.ConnectionStrings.ConnectionStrings["ConnString"].ConnectionString.Length > 0)
{
connectionString = configuration.ConnectionStrings.ConnectionStrings["ConnString"].ConnectionString;
}
//var connectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ConnString"];
//if (connectionString != null)
//{
//}
return connString;
我使用.NET Framework 4.0,IIS 7中,應用程序池是.NET框架4.0和Windows 7的機器。
感謝, Awadhendra
你試圖讀取來自外部的連接字符串值WCF應用程序或從WCF服務代碼中? – Sarathy 2015-02-12 08:30:52
在WCF服務代碼中。 – Awadhendra 2015-02-12 08:31:29
你可以嘗試使用System.Configuration.ConfigurationManager.ConnectionStrings [「ConnString」]。ConnectionString? – Sarathy 2015-02-12 08:32:20