Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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
Asp.net web api 从Global.asax读取web.config文件_Asp.net Web Api_Web Config_Global Asax_Configurationmanager - Fatal编程技术网

Asp.net web api 从Global.asax读取web.config文件

Asp.net web api 从Global.asax读取web.config文件,asp.net-web-api,web-config,global-asax,configurationmanager,Asp.net Web Api,Web Config,Global Asax,Configurationmanager,我的Web API项目中有启动代码,它试图从默认情况下在bin目录中发布的Web.config文件中读取值。因为应用程序初始化点是Global.asax,所以这个级别没有web.config,所以我需要弄清楚如何在bin文件夹中引用它 以下是我的IIS目录的根目录: 每当我尝试使用ConfigurationManager.AppSettings从web.config文件读取值时,它们都返回空值。只有当我将web.config从bin文件夹向上移动到根目录中时,才会找到这些值 我尝试添加一些代码

我的Web API项目中有启动代码,它试图从默认情况下在bin目录中发布的Web.config文件中读取值。因为应用程序初始化点是Global.asax,所以这个级别没有web.config,所以我需要弄清楚如何在bin文件夹中引用它

以下是我的IIS目录的根目录:

每当我尝试使用
ConfigurationManager.AppSettings
从web.config文件读取值时,它们都返回空值。只有当我将web.config从bin文件夹向上移动到根目录中时,才会找到这些值

我尝试添加一些代码,建议在尝试读取值之前将路径强制到正确的默认位置(在bin文件夹中),但这也不起作用:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Fix web.config location
        var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin\\web.config");
        AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", path);

        var appId = ConfigurationManager.AppSettings["ApplicationId"];
    }
}

有没有办法强制将web.config文件的路径保存在bin文件夹中?

首先,我不明白为什么要将web.config文件保存在bin文件夹中。web.config文件的默认路径始终与global.asax相同,即应用程序的根目录。我一直在ASP.NET、ASP.NET WebAPI和ASP.NET MVC应用程序中工作,所有这些应用程序都将web.config保存在与Global.asax相同的文件夹中

如果将web.config文件从bin目录移动到与global.asax相同的目录,是否会丢失任何内容

此外,如果您要读取的是连接字符串(我从您的问题中了解到),您可以执行以下操作,并将您的连接设置放在bin目录的web.config中

<connectionStrings configSource="bin\connection.config"/>

有关配置文件的更多详细信息,请参阅本文