2016-03-22 36 views
0

Azure'a yerel olarak iyi çalışan bir MS SQL DB ile yayımlayabilirim.Azure için yayımlama PublishSettings kullanarak bir MSSql ile Visual Studio 2015'ten yayımlama

DB'm https ile çalışıyorum ve yerel olarak iyi çalışıyor. Uygulama yayınladıktan sonra, DB'nin herhangi bir tablosuna erişmeye çalıştığım durumlar dışında, uygulama gayet iyi çalışıyor. Ben nesneyi Bir App oluşturduk ve bir MSSql kendisine bağlı olan Azure Bundan önce dbo.CarType because it does not exist or you do not have permissions.

bulamıyor

hata

altında olsun. Bunu yaptıktan sonra Yayınlama Ayarları'nı (aşağıda, pwd maskeli) alıyorum. BTW, code-first migrations kullandım, ancak yayınlamadan önce temiz bir seçenekle başlamak için geçişleri sıfırladıktan sonra yalnızca bir geçiş ekledim: add-migraitial Initial.

.PublishShettings dosyası: Bu doğrudan EF Göçler sorulara cevap vermez ama alternatif çözüm

<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 [email protected];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 [email protected];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 [email protected];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 [email protected];Password=XXXXXXXX;" providerName="System.Data.SqlClient" type="Sql" targetDatabaseEngineType="sqlazuredatabase" targetServerVersion="Version100" /> 
     </databases> 
    </publishProfile> 
</publishData> 
+0

Hiçbir şey işe yaramadıysa, __MigrationHistory tablosunu silebilir ve eklenti geçişini ardından güncelleme-database -verbose yazabilirsiniz. Downside göçmenleri kaybedeceksin. Ayrıca herhangi bir tabloyu herhangi bir isimle yeniden adlandırdınız mı? Bu durumda, yeniden adlandır komutları önce çalıştırılmalıdır. – Aravind

cevap

0

teşekkürler. "Faydalı" bir noktayı ekleyemedim çünkü sadece itibar puanında 11 tane var (konuşmak için bir lakey var).

Sorunumun ne olduğunu buldum: 2 şey yapmam gerekiyor: - Göçleri kaldır (yalnızca klasörleri değil). - Bu satırı Configuration() yapıcısındaki Migrations/Configuration.cs dosyasına ekleyin: AutomaticMigrationDataLossAllowed = true; - Yayınlarken, geçişleri çalıştırma seçeneğini işaretleyin, böylece Tohum yöntemi çalıştırılır.

Birisi bana verilen cevaba nasıl faydalı noktalar ekleyeceğini söylerse bunu takdir edeceğim.