Я унаследовал проект веб-сайта, в котором используется ряд веб-служб WCF, размещенных на сервере BizTalk. У нас есть две среды, в которых мне нужно развернуть этот проект, с разными URL-адресами для разных серверов BizTalk.
т. е. в среде Staging мне нужно указать службы на xx.xx.xx.101
В среде Live мне нужно указать им на xx.xx.xx.102
или что-то еще.
В настоящее время у нас есть все URL-адреса, хранящиеся в ключах в файле web.config, поэтому мы можем изменять их динамически. К сожалению, это не работает.
Если я изменю URL-адрес в web.config на что-то отличное от того, с чем был скомпилирован проект, я получаю сообщение об ошибке при вызове службы:
Сервер не распознал значение HTTP-заголовка SOAPAction: xx.xx.xx.101\ServiceName\MethodName
Мне сказали, что единственный известный им способ развернуть это — обновить URL-адреса web.config, изменить все веб-ссылки в Visual Studio, чтобы они совпадали, нажать «Обновить веб-ссылку» для каждой ссылки в Visual Studio, а затем скомпилировать.
Я написал сценарий предварительной сборки NAnt, чтобы просмотреть и заменить все экземпляры URL-адреса, найденные где-либо в каталоге проекта, и даже это не имеет никакого значения.
Когда я нажимаю «Обновить ссылку», должно быть что-то еще, вытаскиваемое из службы, но я не уверен, что именно.
У кого-нибудь есть какие-либо идеи? Есть ли способ сделать это программно?