【问题标题】:Publishing to Azure From Visual Studio 2015 with an MSSql using PublishSettings使用 PublishSettings 使用 MSSql 从 Visual Studio 2015 发布到 Azure
【发布时间】:2016-03-22 05:54:11
【问题描述】:

我可以使用 MS SQL DB 发布到 Azure,这在本地可以正常工作。

我的数据库与https 一起工作,并且在本地运行良好。 发布应用程序后,除非我尝试访问数据库的任何表,否则该应用程序工作正常。我得到以下错误

找不到对象dbo.CarType because it does not exist or you do not have permissions.

在此之前,我在 Azure 中创建了一个应用程序并将其链接到一个 MSSql。完成此操作后,我得到了已发布的设置(下面,pwd 被屏蔽),然后我在发布时导入。 顺便说一句,我使用了code-first migrations,但在发布之前我确实重置了迁移以从一个干净的状态开始,然后添加了一个迁移:add-migration Initial。

.PublishShettings 文件:

<publishData>
   <publishProfile profileName="CrJbApp - Web Deploy" publishMethod="MSDeploy" publishUrl="crjbapp.scm.azurewebsites.net:443" msdeploySite="CrJbApp" userName="$CrJbApp" userPWD="Jrdab2E8xl4HidsdaRLS6oR5rPEtFPG8cHd20SYl4WtqFjymdc5qgf6sCsrC" destinationAppUrl="http://crjbapp.azurewebsites.net" SQLServerDBConnectionString="Data Source=tcp:g2ojj5kj5y.database.windows.net,1433;Initial Catalog=CrJbDb;User Id=XXXXXXX@g2ojj5kj5y;Password=XXXXXX;" mySQLDBConnectionString="" hostingProviderForumLink="" controlPanelLink="http://windows.azure.com" webSystem="WebSites" targetDatabaseEngineType="sqlazuredatabase" targetServerVersion="Version100">
      <databases>
         <add name="DefaultConnection" connectionString="Data Source=tcp:g2ojj5kj5y.database.windows.net,1433;Initial Catalog=CrJbDb;User Id=XXXXXXX@g2ojj5kj5y;Password=XXXXXXX;" providerName="System.Data.SqlClient" type="Sql" targetDatabaseEngineType="sqlazuredatabase" targetServerVersion="Version100" />
      </databases>
   </publishProfile>
   <publishProfile profileName="CrJbApp - FTP" publishMethod="FTP" publishUrl="ftp://waws-prod-am2-051.ftp.azurewebsites.windows.net/site/wwwroot" ftpPassiveMode="True" userName="CrJbApp\$CrJbApp" userPWD="Jrdab2E8xl4HidsdaRLS6oR5rPEtFPG8cHd20SYl4WtqFjymdc5qgf6sCsrC" destinationAppUrl="http://crjbapp.azurewebsites.net" SQLServerDBConnectionString="Data Source=tcp:g2ojj5kj5y.database.windows.net,1433;Initial Catalog=CrJbDb;User Id=XXXXXXXX@g2ojj5kj5y;Password=XXXXXXXX;" mySQLDBConnectionString="" hostingProviderForumLink="" controlPanelLink="http://windows.azure.com" webSystem="WebSites" targetDatabaseEngineType="sqlazuredatabase" targetServerVersion="Version100">
      <databases>
         <add name="DefaultConnection" connectionString="Data Source=tcp:g2ojj5kj5y.database.windows.net,1433;Initial Catalog=CrJbDb;User Id=XXXXXXX@g2ojj5kj5y;Password=XXXXXXXX;" providerName="System.Data.SqlClient" type="Sql" targetDatabaseEngineType="sqlazuredatabase" targetServerVersion="Version100" />
      </databases>
   </publishProfile>
</publishData>

【问题讨论】:

  • 如果没有任何效果,您可以删除 __MigrationHistory 表并运行 add-migration,然后运行 ​​update-database -verbose。缺点是您将失去迁移。你也有机会重命名任何表吗?在这种情况下,必须先运行重命名命令。

标签: sql-server azure visual-studio-2015 publish entity-framework-migrations


【解决方案1】:

这不会直接回答您的 EF 迁移问题,而是一种替代解决方案。我们尝试了迁移,但决定改用数据库项目和 DACPAC 进行部署。这对我们来说非常有效。你应该试试看。

http://dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/

【讨论】:

    【解决方案2】:

    感谢您的帮助。我无法添加“有用”点,因为我的声望分数只有 11 分(可以说是走狗)。

    但我发现我的问题是:我必须做两件事: - 删除迁移(不是文件夹,只是迁移)。 - 在 Configuration() 构造函数的 Migrations/Configuration.cs 中添加这一行: AutomaticMigrationDataLossAllowed = true; - 发布时,选中运行迁移的选项,以便运行 Seed 方法。

    如果有人告诉我如何在给出的答案中添加有用的点,我将不胜感激。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 2016-03-22
      相关资源
      最近更新 更多