2013-08-07 4 views
0

Мне нужно позвонить в веб-службу из нового проекта библиотеки классов C#. Веб-служба еще не доступна для меня (разное географическое местоположение и закрытая сеть до выпуска). Однако у меня есть WSDL, и я добавил Web Reference в свой новый проект библиотеки классов в WSDL.Как веб-ссылка знает, какой адрес использовать?

Моя проблема заключается в том, что я не вижу, где я могу настроить сервисный адрес, на котором основан WSDL. На данный момент он отлично развивается против закрытия WSDL, но когда я выпущу его в другой центр разработки, они должны будут иметь возможность установить правильный адрес для своей службы, чтобы мой сервисный вызов в нем работал.

Есть ли распространенная практика здесь? то есть запись файла конфигурации, которую я могу добавить или что-то еще?

+0

FYI, веб-ссылки используют наследие ASMX технологии веб-службу. Вместо этого вы должны использовать Service Reference. ASMX - это устаревшая технология и не должна использоваться для новой разработки. WCF следует использовать для всех новых разработок клиентов и серверов веб-сервисов. Один из намеков: Microsoft отстранила [ASMX Forum] (http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads) в MSDN. –

+0

Да, я знаю этого Джона, но мои руководители по развитию в материнской компании живут в Tardis, который застрял на обратной стороне, и я должен сделать это так. –

ответ

0

Если вы добавили веб-ссылку с помощью VS, она автоматически создаст соответствующую настройку в вашем файле .config.

Вы также можете просмотреть/изменить это в Settings.settings.

N.B. по умолчанию VS устанавливает этот параметр для генерации значения по умолчанию (которое основано на исходном значении, которое вы используете для добавления ссылки, я считаю, и оно зарывается где-то в сгенерированном кодовом файле). Вы можете отключить это, просмотрев Свойства проекта -> Настройки, выделив параметр WSDL, а затем на вкладке «Свойства» (пристыкованное окно) установите GenerateDefaultValueInCode = False.

После развертывания местоположение WSDL можно обновить, изменив соответствующее значение файла .config.


EDIT: свойство поведения URL-адреса веб-ссылки должно быть установлено в Dynamic.

+0

Пример полезен –

+0

Проект библиотеки классов не имеет конфигурационного файла, и в настройках нет ничего. Я использую VS 2012, если это имеет значение. –

+0

Итак, добавьте app.config, снова добавьте веб-ссылку, затем скопируйте из кода, который был добавлен в app.config, в файл конфигурации вызывающего приложения. –

-1

Посмотрите на конечную точку узла в вашем app.config, изменение URL для различных сред

<configuration> 
    <system.serviceModel> 
    <bindings>  
     ... 
    </bindings> 
    <client> 
     <endpoint address="#URL#" 
      binding="xxx" bindingConfiguration="xxx" 
      contract="xxx" name="xxx" /> 
+0

-1: К сожалению, у него есть веб-ссылка –

+0

У него есть wsdl-файл, вы все равно можете добавить ref ref и указать его в локальный файл, который будет создавать все необходимое – Konstantin

+0

Я согласен, что он что-то делает, но он этого не делает. Вместо этого он добавил веб-ссылку. –

Смежные вопросы