У меня есть один 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 указывает на локальный сервер, то все нормально, если указывает на интернет-сервер, ответ равен нулю