WCF WSDL имеет операторы xsd: import в одной среде, но не в другой - PullRequest
1 голос
/ 18 октября 2011

В наших средах INT и QA WSDL для простой службы WCF выглядит следующим образом:

<wsdl:types>
  <xsd:schema targetNamespace="http://blahService/Imports">
    <xsd:import schemaLocation="http://server:80/blahService/blahService.svc?xsd=xsd2" namespace="http://genericHeader"/>
    <xsd:import schemaLocation="http://server:80/blahService/blahService.svc?xsd=xsd3" namespace="http://blahServiceNamespace"/>
  </xsd:schema>
</wsdl:types>

Но в Prod это выглядит так:

<wsdl:types>
  <xsd:schema targetNamespace="http://blahService/Imports" />
</wsdl:types>

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

Ответы [ 2 ]

1 голос
/ 18 октября 2011

WSDL генерируется на лету WCF.Убедитесь, что конечная точка mex открыта в PROD.

В качестве предостережения, будьте осторожны с выравниванием WSDL для исключения импорта.В зависимости от того, насколько сложен ваш граф объектов DTO, возможно, что XSD будут «сломаны» из-за перекрестных ссылок.В таком случае инструменты .NET прекрасно работают для создания прокси-классов, но мы сталкивались с ошибками инструментов Java и других инструментов проверки XML из-за некорректных схем.

0 голосов
/ 05 мая 2014
[XmlSerializerFormat]
    public partial interface IInterface
    {        [OperationContract]
        Response test(test[] tests);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...