这似乎是一个非常简单的问题,但不适合我。我正在尝试从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