Развертывание проекта C # и добавление ссылки на веб-службу во время установки

#c# #.net #web-services #windows-installer #setup-deployment

#c# #.net #веб-службы #windows-установщик #установка-развертывание

Вопрос:

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

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

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

Просто уточнение для службы не меняется, служба будет размещена на другом сервере mahcine, поэтому при каждом изменении 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" />
  

Комментарии:

1. Почему вы хотите обновить ссылку?

2. Или даже если можно обновить ссылку на project вручную, то какие файлы я должен рассмотреть для обновления URL-адреса ссылки. Это сервис SOAP.

3. поскольку для каждого клиента служба размещена на разных компьютерах

4. @Huzaifa: вам не нужно обновлять ссылку, чтобы обновить URL службы. Вы можете просто изменить URL, который вы используете во время выполнения.

5. Как я могу обновить URL? в коде

Ответ №1:

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

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

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

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

Ответ №2:

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

Комментарии:

1. Да, каждый раз, когда меняется URI, служба будет размещаться на другом сервере.