Клиентский прокси SVC и WSDL, размещенные на удаленном сервере - PullRequest
0 голосов
/ 30 января 2012

У меня есть один wsdl и xsd, затем я сгенерировал клиентский прокси SVC из wsdl, wsdl размещен на Windows Server 2003 (вне локального домена), где-то в Интернете. XSD также находится в том же месте. Я вижу их в веб-браузере, там нет проблем.

Затем я сделал простой клиент консольного приложения, когда я запускаю клиент, я вижу в fiddler, что правильный ответ мыла есть, но в консольном приложении ответ нулевой, то есть клиент SVC не может его десериализовать.

Я уверен, что xsd + wsdl верны и ответ тоже (я вижу в fiddler).

Когда я помещаю wsdl и xsd на сервер локального домена (интранет), все хорошо, я вижу ответ в десериализации приложения должным образом.

Если я сравниваю обе ситуации в скрипаче, я не вижу никакой разницы в необработанном ответе.

Несколько баллов: я не размещаю службу WCF в IIS. У меня есть другой сервис, работающий удаленно. Дайте мне знать, если я уточню больше вещей.

Спасибо.

Редактирование / обновление: очищенный пост. Кажется, проблема не в IIS6 или IIS7, а в том, что удаленный сервер создает проблемы с расположением схемы. В пространстве имен MessagContract прокси-клиента SVC, если он указывается на внешний сервер, проблема возникает еще на сервере интрасети, он работает нормально.

Пример:

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
public partial class responseTypeOfMethod1
{

[System.ServiceModel.MessageBodyMemberAttribute( Namespace = "http://testserver.xxxxx/yyyy.wsdl", Order = 0)]
public RAT_type RAT;
................
....
..

}

если http://testserver.xxxxx указывает на локальный сервер, то все нормально, если указывает на интернет-сервер, ответ равен нулю

Ответы [ 2 ]

1 голос
/ 31 января 2012

Проблема решена. Конечно, это была проблема с пространством имен, потребовалось много времени, чтобы найти неприятное место в серверном коде, инструменте, который мы используем внутри компании. Спасибо всем, кто ответил за ваше время.

1 голос
/ 30 января 2012

Здесь могут происходить 2 вещи:

  1. Ответ не возвращается с удаленного сервера
  2. Клиент не может десериализовать ответ

Используйте wireshark или другой сетевой анализатор, чтобы увидеть, какой ответ возвращается.

Если проблема связана с невозможностью десериализации, вероятно, это различие в пространстве имен.

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