我想在我的应用程序的web.config文件(<httpWarmup>
内的<system.webServer>
元素)中包含IIS {的Application Warmup module配置。
这在安装模块时工作正常,但如果我想将应用程序部署到没有安装模块的服务器(例如IIS Express),我会得到
HTTP错误500.19 - 内部服务器 错误
请求的页面不能 访问因为相关 页面的配置数据是 无效。
可以这样做吗?是否有设置使IIS忽略<system.webServer>
中无法识别的额外元素?
由于
答案 0 :(得分:2)
如果您使用的是Visual Studio 2010,则可以使用web.config
转换功能。使用转换,您可以结合网站“发布”工具,转换web.config
并添加/删除设置,具体取决于您是在进行调试还是发布版本。
有关详细信息,请参阅:
Web.config Transformation Syntax for Web Application Project Deployment
How to: Transform Web.config When Deploying a Web Application Project
Scott Hanselman有一个很棒的演示这个功能:
Web Deployment Made Awesome: If You're Using XCopy, You're Doing It Wrong
这适用于ASP.NET 2.0和4.0。
如果您仍在使用Visual Studio 2008,那么仍然可以实现此目的。
首先是使用强力方法并维护多个web.config
文件。在VS中构建项目时,在正确的web.config
文件中使用预构建的事件交换。我之前使用过这种技术,但Scott Hanselman(一如既往)有一个很好的例子:
Managing Multiple Configuration File Environments with Pre-Build Events
如果您直接使用MSBuild,则可以使用构建任务来修改web.config
文件。 MSBuild Community Tasks Project提供了一个扩展库,它为MSBuild提供了额外的扩展,使这些任务更容易。 XmlMassUpdate
任务可能是您要使用的任务。我会诚实地承认,我现在只是抓住了MSBuild的表面,并没有真正尝试过这个,但是(我并不是以LMGTFY方式表示)google搜索XmlMassUpdate会返回一个有用的接缝看点击。