|
web services и namespaces
|
|||
---|---|---|---|
#18+
Изучаю С#, мой первый строго типизированный язык программирования. Поэтому прошу строго не судить. Суть в следующем: пишу windows-приложение для работы со сторонним сайтом. Сайт имеет свой API, реализованный в виде двух веб-сервисов. Оба веб-сервиса с программной стороны абсолютно идентичны: одинаковые методы, классы (разница - в географии возвращаемых данных); создание запросов и обработка полученных данных на клиенте также абсолютно одинакова. Однако из-за разных URL-ов получаю в программе два неймспейса: One и Two .... С# требует указать из какого неймспейса я вызываю методы. Приходится писать две версии кода. Как побороть дублирование? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 02:41 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
У прокси веб-сервиса есть свойство - Url. Вот его и меняйте. Менять можно перед каждым вызовом (я имею в виду - пересоздавать объект не нужно). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 11:15 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
Почитать про интерфейсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 11:31 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
НахлобучПочитать про интерфейсы. Антон, интерфейсы тут совершенно не при чем. В веб-сервисах и так все предусмотрено. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 11:35 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
vagner НахлобучПочитать про интерфейсы. Антон, интерфейсы тут совершенно не при чем. В веб-сервисах и так все предусмотрено. Ааа, дада, точно. Почему-то подумал про два веб-сервиса с примерно одинаковыми сигнатурами методов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 12:06 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
vagnerУ прокси веб-сервиса есть свойство - Url. Вот его и меняйте. Менять можно перед каждым вызовом (я имею в виду - пересоздавать объект не нужно). Не решает проблемы. Так выглядит типичный вызов метода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
в resp получаем целое дерево обьектов. классы FirstMethodRequestType, FirstMethodResponseType и много десятков других определены на стороне веб-сервиса. Поэтому C# требует указывать перед ними неймспейс One или Two . Приходится писать две версии кода... Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 15:22 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
Не Uri а Url (URL). Все решает. В процессе разработки я настраиваюсь на тестовый веб-сервис, пишу код, отлаживаюсь. Когда все готово - меняю URL веб-сервиса в конфиге и все работет. Ну, если быть точным, моя прграмма позволяет пользователю самому задавать сайт, с которым необходимо работать. И если на выбранном сайте есть нужный мне веб-сервис - то все работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 15:44 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
vagnerНе Uri а Url (URL). Все решает. В процессе разработки я настраиваюсь на тестовый веб-сервис, пишу код, отлаживаюсь. Когда все готово - меняю URL веб-сервиса в конфиге и все работет. с Uri просто опечатка. изменяю Url перед вызовом метода: Код: plaintext 1.
При выполнении программы вылетает Exeption: "System.Web.Services.Protocols.SoapHeaderExeption: Internal Error as System.Web.Services.Protocols.SoapHttpClientProtocol.ReadPesponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at MyProgram.One.SiteService.FirstMethod(FirstMethodRequestType request) in C:\Documents and Settings\dima\Мои документы\Visual Studio 2008\Projects\MyProgram\MyProgram\Web References\One\Reference.cs:line 251 at MyProgram.main.button_Click(Object sender, EventArgs e) in C:\Documents and Settings\dima\Мои документы\Visual Studio 2008\Projects\MyProgram\MyProgram\main.cs:line 138" При вызове метода из "родного" веб-сервиса без изменения Url - все работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 16:37 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
dimabest... изменяю Url перед вызовом метода: Код: plaintext 1.
В Url надо заносить адрес ".../siteServise.asmx", с не ".../siteServise.wsdl". З.Ы. еще желательно проверить, чтобы у обоих веб-служб были одинаковые target-namespace в описании SOAP-Envelope... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 16:45 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
qu-qu... В Url надо заносить адрес ".../siteServise.asmx", с не ".../siteServise.wsdl"... Пардон, "с не" читать как "а не". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 16:47 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
qu-qu qu-qu... В Url надо заносить адрес ".../siteServise.asmx", с не ".../siteServise.wsdl"... Пардон, "с не" читать как "а не". Никакого .asmx нету. Адрес веб-службы заканчивается на .wsdl ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 16:50 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
Дмитрий (я не ошибся?), поймите, я не просто так пишу. Я говорю Вам как должно быть и как у меня работает. А теперь давайте попробуем разобраться. У Вас точно два совершенно одинаковых сервиса? То есть, на самом деле, один и тот же сервис установленный на двух сайтах? Мне кажется, что нет. К сожалению, Internal error говорит мало. Посмотрите на исключение внимательнее, может быть, там есть вложенное исключение с более подробной иноформацией? Но что-то мне говорит, что сервисы не одинаковы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 16:54 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
А все, всем спасибо. В адресе веб-службы нужно просто убрать ".wsdl" и будет работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 16:55 |
|
web services и namespaces
|
|||
---|---|---|---|
#18+
Я раньше писал на PHP, где достаточно указать адрес wsdl-файла. Сейчас просмотрел документацию к веб-сервису - увидел раздел "The Connection End-point URLs for the API Services", где указаны адреса на которые на самом деле посылаются запросы, все то же, но без ".wsdl" в конце. Сорри за мою нерасторопность. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2008, 17:00 |
|
|
start [/forum/topic.php?fid=19&fpage=35&tid=1397989]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 251ms |
total: | 426ms |
0 / 0 |