0

在我的 web.config

<connectionStrings>

    <add name="Context" connectionString="Server=tcp:database.windows.net,1433;Database=DbDev;User ID=xxxx;Password=xxxx.;Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True"
    providerName="System.Data.SqlClient" />
<connectionStrings/>

我的 web.Debug.config

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

    <connectionStrings>

      <add name="Context" connectionString="Server=tcp:database.windows.net;Database=DbDev;
      User ID=xxxx;Password=xxxx.;
      Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True"
    providerName="System.Data.SqlClient" xdt:Transform="Replace" xdt:Locator="Match(name)"/>
    </connectionStrings>

  <system.web>

      <customErrors mode="Off" xdt:Transform="Replace">

      </customErrors>

    </system.web>
</configuration>

在我的 web.Release.config

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

    <connectionStrings>

      <add name="Context" connectionString="Server=tcp:database.windows.net;
           Database=DbProd;User ID=xxxx;Password=xxxx.;
           Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True"
            providerName="System.Data.SqlClient" 
            xdt:Transform="Replace" xdt:Locator="Match(name)" />
    </connectionStrings>

    <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />

      <customErrors defaultRedirect="GenericError.htm" mode="On" xdt:Transform="Replace">
        <error statusCode="500" redirect="InternalError.htm"/>
      </customErrors>

    </system.web>
</configuration>

它只是没有获得生产数据库 DbProd

4

2 回答 2

3

我认为在 VS 中运行“发布”模式时,它会转换 web.release.config 文件,但由于某些原因(缓存?bin?)它不会使用它。但是,当我在 Azure 环境中发布它时,那么它将正确获取配置

于 2012-05-28T13:24:24.047 回答
1

xdt:Locator="Match(name)"name表示如果属性值匹配,将应用转换后的值。

在 web.config 你有

<add name="Context"

但是在 web.release.config

<add name="PoqContext" 

将连接字符串名称更改为相同的值应该会对您有所帮助。此外,请查看Web.config Transformation Syntax以了解其他可用选项

于 2012-05-24T17:22:29.353 回答