Asp.net web api 从Global.asax读取web.config文件
我的Web API项目中有启动代码,它试图从默认情况下在bin目录中发布的Web.config文件中读取值。因为应用程序初始化点是Global.asax,所以这个级别没有web.config,所以我需要弄清楚如何在bin文件夹中引用它 以下是我的IIS目录的根目录: 每当我尝试使用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文件夹向上移动到根目录中时,才会找到这些值 我尝试添加一些代码
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"/>
有关配置文件的更多详细信息,请参阅本文