Развертывание проекта C # и добавление ссылки на веб-сервис во время установки - PullRequest
1 голос
/ 28 апреля 2011

У меня есть требование, при котором приложение будет ссылаться на веб-сервис. При каждой новой установке клиента мне нужно обновлять ссылку вручную, открывая проект в VSS и повторно добавляя ссылку.

Могу ли я добавить ссылку как часть моего проекта установки, или я могу добавить / обновить ссылку на веб-сервис с помощью кода на C #.?

У меня нет опыта создания проекта установки или MSI. Если кто-то также подскажет мне хороший учебник, он будет великолепен!

Просто пояснение к Сервису не меняется, Сервис будет размещаться на разных машинах, поэтому каждый раз при изменении URI.

Фрагмент из конфигурации приложения: Мне нужно обновить конечную точку и servicePrincipalName через код или проект установки?

  <endpoint address="net.tcp://rntn1099:8201/AX/Services/APVendInvoice"
  binding="netTcpBinding" bindingConfiguration="NetTcpBinding_VendVendInvoiceService"
contract="VendInvoiceService.VendVendInvoiceService"     name="NetTcpBinding_VendVendInvoiceService"><identity>  < servicePrincipalName value="host/RNTN1099.corp.xyz.com" />

Ответы [ 2 ]

2 голосов
/ 28 апреля 2011

Я никогда не слышал это как фактическое требование.Я слышал это от людей, которые не знают, что вы можете выбрать URL-адрес службы во время выполнения.

Когда вы обновляете ссылку на службу, вы фактически изменяете код клиента.Это означает, по крайней мере, что все ваши тесты клиента должны выполняться после обновления ссылки (чтобы вы тестировали код, который использует клиент).

Когда вы используете «Добавить ссылку на службу»", внизу вы вводите пространство имен.Это будет сочетаться с пространством имен по умолчанию для вашего приложения, чтобы быть пространством имен, в котором создано несколько классов.Например, если ваше пространство имен по умолчанию - «MyWebApp», и вы используете «RemoteService» в качестве пространства имен в «Добавить ссылку на службу», то пространство имен будет MyWebApp.RemoteService.Вы можете проверить содержимое этого пространства имен, используя "View-> Object browser" в Visual Studio.

Теперь, если служба называется OrderService, будет класс OrderServiceClient.У него есть несколько конструкторов.Один из этих конструкторов принимает как имя конфигурации, так и URL.Другой принимает имя конфигурации и EndPointAddress.Вы должны использовать один из двух.

1 голос
/ 28 апреля 2011

Это требование звучит странно. Почему вы должны обновить ссылку? Если служба изменит свой интерфейс, ваш клиент больше не будет работать. Поэтому я предполагаю, что ваша проблема в том, что вы хотите получить доступ к одному и тому же сервису под другим URL-адресом ?! Если да: Вам не нужно обновлять ссылку. Вы можете настроить сервис URl без обновления ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...