Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从asp.net读取配置文件_C#_Asp.net_.net_Config_Configurationmanager - Fatal编程技术网

C# 从asp.net读取配置文件

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检索设置,

我正在创建一个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值。我猜读取配置文件会造成混乱,您可以通过查看来清除它或了解一些信息。我猜读取配置文件会造成混乱,您可以通过查看来清除它或了解一些信息