Rob*_*per 1 asp.net configuration web-config web-farm
这个问题让我们几个人在办公室里难过.我们都是将ASP.NET应用程序部署到Web服务器场的新手,我对这些想法很感兴趣.
我们有一个Web场,应用程序被复制到所有这些场.但是,我们遇到了问题..
尝试从中获取设置时会抛出异常appSettings
.经过进一步调查,事实证明该节点实际上并没有使用本地,Web.Config
但它回退到Web.Config
.NET框架文件夹中(我们通过在那里添加密钥证明了这一点,它出现在测试页面上).
我必须遗漏一些东西,因为我的理解是,只要文件存在,IIS就应该使用它!其中一台服务器似乎工作正常!
这是我们确认的清单:
但是,在运行时,使用的文件是全局文件(windows\ms .net\framework\v2\config\web.config
).
任何人都有什么可能出错的建议吗?感谢我能得到的所有帮助!
谢谢.
抢
这是ASP.NET配置的层次结构.也许这有助于了解哪些设置会相互覆盖.
Machine.config:Machine.config文件包含服务器上所有Web应用程序的ASP.NET架构.此文件位于配置合并层次结构的顶部.
Web.config:服务器的Web.config文件存储在与Machine.config文件相同的目录中,并包含大多数system.web配置节的默认值.在运行时,此文件在配置层次结构中从顶部合并到第二位.
Web.config:特定网站的Web.config文件包含适用于网站的设置,并通过网站的所有ASP.NET应用程序和子目录向下继承.
Web.config:特定ASP.NET应用程序的Web.config文件位于应用程序的根目录中,包含适用于Web应用程序的设置,并通过其分支中的所有子目录向下继承.
Web.config:应用程序子目录的Web.config文件包含适用于此子目录的设置,并通过其分支中的所有子目录向下继承.
ApplicationName.config:ApplicationName.config文件包含Windows客户端应用程序(不是Web应用程序)的设置.
了解通过文件夹和应用程序继承哪些ASP.NET文件和文件夹对于开发和故障排除非常重要.
这是一个简短的总结:
因此,这意味着根web.config文件中设置的任何内容都将继承整个站点,即使某些文件夹被标记为应用程序也是如此.
如果web.config文件引用了程序集但子应用程序没有这些程序集,那么这会变得混乱.例如,假设您在站点的根目录中配置了HTTP模块,并从站点web.config文件中引用.如果您有一个名为/ subfolder的子应用程序被标记为应用程序,则/ subfolder将尝试从/ subfolder/bin加载HTTP Handler.由于它不存在,将引发错误.
有很多方法可以解决这个问题.如果/子文件夹中不需要HTTP处理程序,最干净的可能是通过在/subfolder/web.config文件中添加一个子句来"删除"引用.你可以这样做.以下是如何删除子文件夹中的HTTP模块的示例:
<httpModules>
<remove name="ErrorLog"/>
</httpModules>
Run Code Online (Sandbox Code Playgroud)
以下是web.config站点的外观:
<httpModules>
<add name="ErrorLog" type="GotDotNet.Elmah.ErrorLogModule, GotDotNet.Elmah, Version=1.0.5527.0, Culture=neutral, PublicKeyToken=978d5e1bd64b33e5" />
</httpModules>print("code sample");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4113 次 |
最近记录: |