Сегодня произошел инцидент, который заставил меня задуматься.У нас есть проект с довольно стандартной настройкой преобразования web.config для наших различных конфигураций.Есть раздел, который контролирует доступ к нашим службам DAO, который выглядит следующим образом:
<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="" />
И преобразование, подобное этому:
<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)" />
Надеюсь, вы заметили ошибку здесь -имя для DaoEndPoint не совпадает.К сожалению, разработчик, который его создал, этого не сделал, а также проводил локальную отладку с работающими сервисами, что привело к тестовому развертыванию, yup, , указывающему на live .Мы, к счастью, подобрали его довольно быстро, но я уверен, что здесь вы можете увидеть потенциальную крайнюю боль!
Я задумался о вашем намерении при создании файлов трансформации, и мне кажется, что если вы добавитепреобразовать, что вы собираетесь преобразовать что-то .Поэтому было бы неплохо, если бы преобразование (и, следовательно, развертывание) завершилось неудачно, если было преобразование DaoEndPoint, но не было соответствующего элемента DaoEndPoint в главном файле .config.
Так что я вроде как собираю мнения людей,это то, что было бы полезно?Это просто перебор?Я полностью упускаю суть?
Кроме того, есть что-нибудь, что делает это?Я рад найти решение и разработать решение, но я был бы счастлив, если бы кто-то сделал работу для меня;)