C# 从asp.net读取配置文件
我正在创建一个web应用程序,它调用一个DLL来运行单元测试,我还有另一个DLLDataAccessLayer,它执行连接并查询引用主DLL的SQL。两个DLL使用相同的配置文件读取设置 从VS运行应用程序时,应用程序工作正常。但是,当web应用部署到IIS时,DLL似乎无法从配置文件中读取设置 经过一些研究,我发现我可能必须在web.config文件中明确定义配置元素,但是我不知道如何实现这一点。有人能给我指一下正确的方向吗 实际上,我正在使用ConfigurationManager检索设置,代码如下:-C# 从asp.net读取配置文件,c#,asp.net,.net,config,configurationmanager,C#,Asp.net,.net,Config,Configurationmanager,我正在创建一个web应用程序,它调用一个DLL来运行单元测试,我还有另一个DLLDataAccessLayer,它执行连接并查询引用主DLL的SQL。两个DLL使用相同的配置文件读取设置 从VS运行应用程序时,应用程序工作正常。但是,当web应用部署到IIS时,DLL似乎无法从配置文件中读取设置 经过一些研究,我发现我可能必须在web.config文件中明确定义配置元素,但是我不知道如何实现这一点。有人能给我指一下正确的方向吗 实际上,我正在使用ConfigurationManager检索设置,
public string GetValue(string key)
{
var appConfig = ConfigurationManager.OpenExeConfiguration("path to dll");
strKeyValue = appConfig.AppSettings.Settings[key].Value;
return strKeyValue;
}
谢谢。使用WebConfiguration Manager.AppSettings[HelloWorldKey];要从web.config读取AppSettings。请使用WebConfiguration Manager.AppSettings[HelloWorldKey];要从web.config读取AppSettings。只需在部署应用程序之前,直接在web.config中设置您提到的DLL使用的所有AppSettings值。您不需要在运行时修改它,而且无论如何也不应该修改,因为对web.config的任何修改都会导致应用程序重新启动只需在部署应用程序之前直接在web.config中设置您提到的DLL使用的所有appSettings值。您不需要在运行时修改它,而且无论如何也不应该修改,因为对web.config的任何修改都会导致应用程序重新启动使用以下代码访问连接字符串
string filePath= WebConfigurationManager.AppSettings["Pathfile"].ToString();
网络配置文件
<configuration>
....
<appSettings>
<add key="Pathfile" value="Path to dll"/>
</appSettings>
....
</configuration>
使用以下代码访问连接字符串
string filePath= WebConfigurationManager.AppSettings["Pathfile"].ToString();
网络配置文件
<configuration>
....
<appSettings>
<add key="Pathfile" value="Path to dll"/>
</appSettings>
....
</configuration>
将app.config中使用的连接字符串或AppSetting或ApplicationSettings添加到web.config中,我知道这是一项手动任务,但这是配置读取设置的唯一方式。将app.config中使用的连接字符串或AppSetting或ApplicationSettings添加到web.config中,我知道这是一项手动任务,但这是配置读取设置的唯一方式。设置不在web.config中,而是在我调用的dll使用的单独的App.config中。然后将它们移动到web.config-.NET将用web.config中的设置覆盖dll设置。使用app.config作为默认设置,并使用dll中的properties.settings访问它们。顺便说一句:配置dll在大多数情况下都不是必需的-只需在调用中将配置作为参数传递即可。设置不在web.config中,而是在我调用的dll使用的单独的App.config中。然后将它们移动到web.config-.NET将用web.config中的设置覆盖dll设置。使用app.config作为默认设置,并使用dll中的properties.settings访问它们。顺便说一句:配置dll在大多数情况下都不是必需的-只要在调用中将配置作为参数传递即可。因此,我将配置文件的所有appSettings都放在web.config中,然后在我的dll中,我使用WebConfigurationManager从web.config检索值?dll将自动从web.config读取值。您应该在所有项目上使用ConfigurationManager.AppSettings。我认为WebConfiguration Manager已被弃用。@Krafo,请使用System.Configuration.ConfigurationManager.AppSettings[key]。您必须显式地向dll中添加对系统配置的引用。默认情况下,Visual Studio在dll项目中通常不包括它。这正是我希望它的行为方式,但它没有。Web.config不会覆盖machine.config文件的appSettings值。因此,我将配置文件的所有appSettings都放在Web.config中,然后在我的dll中,我使用WebConfigurationManager从Web.config检索值?dll将自动从Web.config读取值。您应该在所有项目上使用ConfigurationManager.AppSettings。我认为WebConfiguration Manager已被弃用。@Krafo,请使用System.Configuration.ConfigurationManager.AppSettings[key]。您必须显式地向dll中添加对系统配置的引用。默认情况下,Visual Studio在dll项目中通常不包括它。这正是我希望它的行为方式,但它没有。Web.config不会覆盖machine.config文件的appSettings值。我猜读取配置文件会造成混乱,您可以通过查看来清除它或了解一些信息。我猜读取配置文件会造成混乱,您可以通过查看来清除它或了解一些信息