【问题标题】:Web.config replacement, missing sectionWeb.config 替换,缺少部分
【发布时间】:2011-10-16 13:40:47
【问题描述】:

我花了一天时间来解决这个“简单”的问题......

我正在使用 Web 部署项目来部署我的 MVC3 webapp。我告诉它通过输入将 appSettings 部分替换为配置文件中的部分

appSettings=Config\AppSettings.Production.config;

效果很好。生成的(部署的)Web.config 文件已正确转换,现在包含我告诉它使用的生产设置。

但是,尝试使用完全相同的方法对自定义部分“弹簧”做同样的事情

spring=Config\Spring.Production.config;

...我明白了...

web.config(1):错误 WDP00002:缺少弹簧部分

spring 部分与 appSettings 元素处于完全相同的级别,所以我不知道为什么它不起作用。

有很多其他人有同样的问题,但我找不到令人满意的答案。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    引用外部文件的正确语法如下:

    <spring configSource="Config\Spring.Production.config" />
    

    据我所知,适用于 appSettings 部分的 file="Config\AppSettings.Production.config" 语法不适用于自定义部分,因为它们没有实现此类属性。

    【讨论】:

    • 您好,感谢您的提示。我确实想知道使用 configSource 属性,但是这种生产版本不是硬编码到我的文件中吗(我对此很陌生)?我如何将它指向我的测试环境的不同文件(configSource=Config\Spring.Test.config)?谢谢
    • 抱歉,不确定您的意思。无论如何,如果不指定 configSource 属性,它将照常查找现有的根目录 web.config 文件。是的,您可以将它指向测试和生产中的不同文件。
    • 我想我得到的是在每个配置的基础上都有一个不同的文件,即 Web.Production.config 指向一个文件,而 Web.Test.config 指向另一个文件(或者我猜想这些值可能直接在那些文件中,没有 configSource 属性。现在尝试一下......再次感谢
    • 嗯,我创建了一个 Web.Production.config 文件,其中包含不同的 元素,当我在 VS2010 中发布我的文件时,文件的发布版本已正确合并,即我有一个 web.config,但它现在包含我想要的 的生产设置。但是,我无法让 Web 部署项目尊重 Web.Production.config 文件,这有点可惜。有没有办法做到这一点?
    • PS 我认为你是对的,由于构建器的某种限制,替换功能不适用于自定义配置部分,它需要找到处理程序的 DLL,这有点垃圾,因为我只是想让它替换文本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 2022-08-19
    • 2011-11-01
    • 1970-01-01
    • 2012-03-14
    • 2010-11-20
    相关资源
    最近更新 更多