Entity Framework aracılığıyla uzak bir veritabanına bağlanan bir ASP.NET Web Uygulaması projem var. Hata ayıklama sırasında (örn. Projeyi yerel bilgisayarımda çalıştırırken), veritabanının IP adresi, serbest bırakma sırasında farklıdır (örn. Projeyi web sunucusuna yükledikten ve tarayıcıdan çalıştırdıktan sonra). Şimdiye kadar Web.config dosyasındaki veritabanı bağlantı dizesini her zaman el ile değiştirdim (temelde bağlantı dizgileri, bir tanesi 'Debug' ve bir 'Release' olmak zorunda kaldım) ve dağıtdığım her defasında isimleri değiştirdim).Web.config Build vs Release dönüşümü çalışmıyor
Şimdi, bunun, Web.Release.config sürümüne değiştirilmiş bağlantı dizesini koyduğunuz yer olan Web.config Transformation Syntax aracılığıyla otomatik olarak gerçekleşmesine izin verilmesinin mümkün olduğunu fark ettim ve bu dosya, DLL Sürüm yapılandırması altında oluşturulduğunda kullanılmalıdır. . Bende işe görünmüyor Ancak
... İşte
(yerel kullanım için hata ayıklama bağlantı dizesini tutan) benim normal Web.config dosyasının ilgili parçasıdır:<?xml version="1.0"?>
<configuration>
<connectionStrings>
<!-- Debug connection string. Release connection string is in Web.Release.config file -->
<add name="DatabaseEntities" connectionString="A" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!-- Replace the DatabaseEntities connection string with the Release version (local IP address) -->
<connectionStrings>
<add name="DatabaseEntities"
connectionString="B"
xdt:Transform="Replace" xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>
: Burada
DLL Yayın modunda ise örneklere göre "B" ile 'DatabaseEntities' bağlantı dizesi "A" değiştirmeniz gerekir Web.Release.config dosyasıdır(Açıkçası "A" ve "B", gerçek bağlantı dizelerim için yalnızca yer tutucularıdır)
Uygulamayı hata ayıkladığımda (ör. sadece F5 tuşuna basın) varsayılan Web.config kullanılır ve veritabanına erişebilirim. Daha sonra Yapılandırma Yöneticisi aracılığıyla Sürüm yapılandırmasını değiştiririm. Çözümdeki tüm projeler Serbest Bırakma yapılandırmasına ayarlandı. Daha sonra çözümü (yalnızca Build aracılığıyla veya tam bir yeniden oluşturma yoluyla (örneğin, Clean, Rebuild)) yapıyorum. Yeni oluşturulmuş olan DLL'leri web sunucusuna, Web.config ve Web.Release.config dosyalarına yüklüyorum ve veritabanına erişmeye çalıştığımda hala hata ayıklama IP adresi üzerinden veritabanına erişmeye çalışıyordum. ve bu nedenle, bulamıyor ...
Web.Release.config dosyasının tamamen yok sayıldığı ya da en azından bağlantı dizesinin değiştirilmediği anlaşılıyor.
Neyi yanlış yapıyorum? Dönüşüm sözdizimi yanlış mı? Uygulamayı Yayın modu altında doğru şekilde oluşturmuyorum? Herhangi bir yardım için
Teşekkür ...
Bu bazen biraz zor olabilir, bir ayar yanlış alırsanız çalışmaz. Configuration Manager'ın ekran görüntüsünü ekleyebiliyorsanız, gözden kaçırdığınız bir şeyi görebiliriz. –
Bu gönderi bana yardımcı oldu: [http://stackoverflow.com/questions/3305096/how-can-i-use-web-debug-config-in-the-built-in-visual-studio-debugger-server] [1] [1]: http://stackoverflow.com/questions/3305096/how-can-i-use-web-debug-config-in-the-built-in-visual-studio -debugger-server –