Chúng tôi đã có một chút sự cố hôm nay khiến tôi suy nghĩ. Chúng tôi có một dự án với thiết lập chuyển đổi web.config khá chuẩn cho các cấu hình khác nhau của chúng tôi. Có một phần kiểm soát quyền truy cập vào các dịch vụ DAO của chúng tôi mà trông như thế này:Không thay đổi web.config khi không có giá trị nào tồn tại cho một biến đổi
<endpoint address="http://myserver/myservice1.svc/basicHttp"
binding="basicHttpBinding" contract="MyAssembly.IItem" name="DataAccessEndPoint"
kind="" endpointConfiguration="" />
<endpoint address="http://myserver/myservice2.svc/basicHttp"
binding="basicHttpBinding" contract="MyAssembly.IItem2" name="LoggingEndPoint"
kind="" endpointConfiguration="" />
Và một biến đổi như thế này:
<endpoint address="http://mytestserver/myservice1.svc" name="DaoEndPoint" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
<endpoint address="http://mytestserver/myservice2.svc" name="LoggingEndPoint" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
Hy vọng rằng bạn sẽ phát hiện lỗi ở đây - tên cho DaoEndPoint không khớp. Thật không may, người sáng tạo đã không tạo ra nó và cũng đã được gỡ lỗi cục bộ dựa trên các dịch vụ trực tiếp, điều này đã gây ra việc triển khai thử nghiệm, yup, trỏ đến sống. Chúng tôi may mắn nhặt nó lên khá nhanh, nhưng tôi chắc rằng bạn có thể thấy tiềm năng đau đớn cực độ ở đây!
Tôi đã suy nghĩ về ý định của bạn khi tạo các tệp biến đổi và dường như với tôi rằng nếu bạn đặt một biến đổi mà bạn định chuyển đổi một cái gì đó. Vì vậy, nó sẽ được tốt đẹp nếu biến đổi (và do đó triển khai) thất bại nếu có một DaoEndPoint biến đổi nhưng không phù hợp với mục DaoEndPoint trong tập tin .config chính.
Vì vậy, tôi sắp xếp sắp xếp cho ý kiến của mọi người, đây có phải là thứ hữu ích không? Có đồng bằng quá mức không? Tôi hoàn toàn mất tích điểm?
Ngoài ra, có bất kỳ điều gì ngoài đó thực hiện việc này không? Tôi rất vui khi được khai thác và phát triển một giải pháp, nhưng tôi sẽ hạnh phúc hơn nếu ai đó đã thực hiện công việc chân tay cho tôi;)
Không biết bất kỳ điều gì sẽ gây ra ngoại lệ, mặc dù có thể hữu ích. Có thể muốn chỉ cần cố gắng để trống giá trị trong web.config chính và nếu nó không được chuyển đổi, bạn sẽ nhanh chóng gặp lỗi trong ứng dụng. Không hữu ích, nhưng ngăn chặn mọi truy cập PROD không chủ ý. – dbugger
Vấn đề với điều này là bạn sau đó không thể gỡ lỗi cục bộ mà không thêm vào một giá trị, điều này đưa chúng ta trở lại vấn đề ban đầu khi dev quên lấy giá trị đó ra một lần nữa ... –