发布到生产服务器名称时ELMAH字符串的转换不起作用

don*_*son 1 asp.net elmah visual-studio-2010

我正在运行Visual Studio 2010,使用ASP.Net表单应用程序.我正在尝试在构建上转换XMl但它无法正常工作.

在我的配置部分,我有以下内容:

 <elmah>
    <security allowRemoteAccess="yes" />
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionString="Data Source=TestServer;Initial Catalog=OnlineApplication;Trusted_Connection=True" />
    <errorMail from="emhelp@server.edu" to="person@test.com" subject=" Exception" async="true" smtpserver="smtpgate.server.edu" />
Run Code Online (Sandbox Code Playgroud)

当我通过web.config.production xml转换发布到生产时,我试图让它变成ELMAH服务器名称.我对应用程序设置和连接字符串的所有其他设置都可以正常工作.我在web.production.config中有以下内容:

    <add type="Elmah.SqlErrorLog, Elmah"
         connectionString="Server=ProductionServer;Initial Catalog=OnlineApplication;Integrated Security=True"
         xdt:Transform="SetAttributes" xdt:Locator="Match(type)"/>
</elmah>
Run Code Online (Sandbox Code Playgroud)

它没有抱怨,但也没有改变文本.我需要更改什么才能在构建/发布时对文件进行转换.

jru*_*ell 6

由于只有一个errorLog标签,您可以使用Replace而不是SetAttributes使用定位器.另请注意,您必须使用实际的标记名称,而不是<add>.

<errorLog type="Elmah.SqlErrorLog, Elmah"
     connectionString="Server=ProductionServer;Initial Catalog=OnlineApplication;Integrated Security=True"
     xdt:Transform="Replace"/>
Run Code Online (Sandbox Code Playgroud)