1

我有一个通过 WebMatrix 发布到 Azure 的 MVC5 项目,我在 web.config 中为生产中的数据库服务器定义了一个连接字符串,如下所示:

<configuration>
  <connectionStrings>
    <add 
      name="MyProjectContainer"
      providerName="System.Data.EntityClient"
      connectionString="[metadata stuff];
        provider=System.Data.SqlClient;
        provider connection string=&quot;
          data source=x1.database.windows.net,1433;
          initial catalog=MyProject;
          Uid=x@x1;
          app=EntityFramework;
          Pwd=xxx
          &quot;"
    />
  </connectionStrings>

...对于本地开发,我在 web.Debug.config 中有一个条目,如下所示:

<connectionStrings>
    <add xdt:Transform="Replace" xdt:Locator="Match(name)"
         name="MyProjectContainer"
         providerName="System.Data.EntityClient"
         connectionString="[metadata stuff];
           provider=System.Data.SqlClient;
           provider connection string=&quot;
             data source=MyDevServer;
             initial catalog=MyProject;
             integrated security=True;
             multipleactiveresultsets=True;
             App=EntityFramework
           &quot;"
           />

我之所以选择这种方法,是因为connectionString在 web.config 中有一个空并在 web.Release.config 中进行转换似乎不起作用。但是,当我在 Azure 上发布我的应用程序时,当我尝试在本地运行它时,Visual Studio 正在尝试连接到 Azure 数据库而不是本地服务器。

所以我有两个问题:

  1. 当我在 WebMatrix 中发布时,我会错过什么转换不起作用?因为如果我能完成这项工作,我会将connectionString主 web.config 中的值设置为空,并在 web.Debug.config 和 web.Release.config 中设置正确的值

  2. Visual Studio 有什么问题,它也不知道如何进行转换?

有没有人为此苦苦挣扎?

4

0 回答 0