12

Tôi thường đặt chuỗi kết nối của tôi vào một tập tin riêng biệt, thêm một cái gì đó như thế này trong web.config:Xuất bản một lần nhấp vào so với năm 2012: cách xóa _ConnectionStringsToInsert?

<connectionStrings configSource="WebConnection.config" /> 

Tôi vừa mới cài đặt VS 2012 và nó tự động nhặt các thiết lập hiện xuất bản của tôi. Tuy nhiên, khi tôi làm một webpublish nó bây giờ có thêm hai kết nối dây bằng cách riêng của mình, vì vậy web.config của tôi về mục tiêu triển khai hiện nay trông như thế:

<connectionStrings configSource="WebConnection.config"> 
    <add name="EF.Model.DbContext" connectionString="EF.Model.DbContext_ConnectionString" providerName="System.Data.SqlClient" /> 
    <add name="Migrations.Db.MigrationDb" connectionString="Migrations.Db.MigrationDb_ConnectionString" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

chắc chắn, rằng tạo ra một lỗi (nội dung nút phải trống khi sử dụng configSource). tôi nhận thấy, rằng trong các tập tin .pubxml mới được tạo (nơi xuất bản cài đặt đang lưu trữ) có dòng sau:

<ItemGroup> 
    <_ConnectionStringsToInsert Include="EF.Model.DbContext" /> 
    <_ConnectionStringsToInsert Include="Migrations.Db.MigrationDb" /> 
    </ItemGroup> 

Làm thế nào tôi có thể loại bỏ chúng? :) Nếu tôi xóa chúng khỏi tệp, hộp thoại Xuất bản web thêm chúng bất cứ lúc nào tôi chỉnh sửa cài đặt xuất bản.

+0

Rất tiếc, bạn đang gặp phải vấn đề này, chúng tôi đã gửi lỗi cho vấn đề này và sẽ cố gắng xử lý vấn đề này. –

+3

@SayedIbrahimHashimi Bạn có biết liệu lỗi này đã được giải quyết chưa? Tôi đang gặp sự cố này. – IanW

Trả lời

6

Tôi đột nhiên giải quyết bằng cách chuyển đến thuộc tính dự án, "Gói/Xuất bản Web" và kiểm tra dấu "Bao gồm tất cả cơ sở dữ liệu được định cấu hình trong tab P/P SQL" (và tôi không có bất kỳ cấu hình DB nào :)) .

Sau khi thực hiện việc này và xóa các dòng được đề cập từ .pubxml mọi thứ đều ổn.

Có vẻ như một hack, nhưng đó là một con đường để đi cho tôi :)

@Sayed, nhờ xác nhận đó là một lỗi, hy vọng nó sẽ được giải quyết!

+4

Sửa chữa này dường như không làm cho những dòng đó ở xa. Chúng vẫn quay trở lại bất cứ khi nào bạn truy cập trang cấu hình chuỗi kết nối trong hộp thoại Xuất bản. – Brannon

1

Trên tab Cài đặt của công khai hồ sơ, xóa Sử dụng chuỗi kết nối này trong thời gian chạy hộp kiểm và Áp dụng Mã đầu tiên di cư hộp kiểm. Đảm bảo rằng di chuyển được bật hoặc Sử dụng hộp kết nối này sẽ không bị xóa, và thậm chí sau đó bạn có thể phải xóa lại lần nữa mỗi khi bạn mở hồ sơ.

4

Tôi đã đưa ra một giải pháp ít có khả năng để bỏ qua lỗi trong việc xuất bản, buộc các nhà phát triển phải có một chuỗi kết nối. Đây vẫn là một vấn đề mà tôi đang gặp trong VS 2013.

Trong web.config của bạn, thêm một phiên bản giả của chuỗi kết nối:

<add name="DbContextName" connectionString="This is a dummy connection string to bi-pass publish bug." providerName="System.Data.SqlClient" /> 

Bây giờ, thiết lập một biến đổi cho cấu hình bạn muốn để tạo một gói xuất bản cho. Đọc thêm về nó here. .

Trong web.config của bạn {} cấu hình tập tin, sử dụng những sản phẩm sau chuyển đổi để loại bỏ các chuỗi kết nối:

<connectionStrings> 
    <add name="DbContextName" xdt:Transform="Remove" xdt:Locator="Match(name)"/> 
</connectionStrings> 

này chuyển đổi chạy sau khi công bố chuyển đổi trong pubxml của bạn chạy, vì vậy nó gạt bỏ cái không mong muốn chuỗi kết nối.

+0

Nếu bạn không bật di chuyển theo câu trả lời từ tdykstra, đây có vẻ là giải pháp duy nhất. Quá trình triển khai Web sẽ không cố gắng thêm các chuỗi kết nối nếu nó thấy chúng đã có trong tệp web.config, và biến đổi xây dựng vui vẻ loại bỏ chúng khỏi tệp web.config trong quá trình xây dựng. – Clint

+0

Giải pháp này cũng làm việc cho tôi, thay đổi duy nhất tôi đã thực hiện là trên ** Web.Release.config **, sử dụng '' loại bỏ tất cả các chuỗi kết nối trên một lót. –

Các vấn đề liên quan