Я испытываю странное поведение при доступе к моим веб-службам через веб-браузер, и это приводит к исключению при генерации.
Вот мой сценарий:
Доступ к веб-странице: http://localhost:10100/WCFService1.svc?wsdl
Доступ к веб-странице: http://localhost:10100/WCFService2.svc?wsdl
Проблема в том, что выходные данные WCFService2.svc WSDL содержат все определения WCFService1, объединенные с WCFService2.
Более того, когда я получаю доступ к другому WSDL, который содержит метод с тем же именем, что и ранее сгенерированный WSDL, я получаю это исключение (конечно, потому что мой WSDL объединяется).
Я также заметил, что название контракта довольно странно, если перед именем службы указано «:»: http://MyCompany.ca/:IWCFService3
Кто-то знает, что происходит с «расширением экспорта WSDL»?
ExceptionDetail, вероятно, созданный
IncludeExceptionDetailInFaults = истина,
чье значение:
System.InvalidOperationException: исключение было брошено в вызове к
Расширение экспорта WSDL:
System.ServiceModel.Description.DataContractSerializerOperationBehavior
контракт: http://MyCompany.ca/:IWCFService3
----> System.InvalidOperationException:
MyCompany.IWCFService3.Import
операция ссылается на элемент сообщения
[http://MyCompany.ca/:Import], который имеет
уже был экспортирован из
MyCompany.IWCFService2.Import
операция. Вы можете изменить имя
одна из операций путем изменения
имя метода или использование свойства Name
OperationContractAttribute.
Кроме того, вы можете контролировать
имя элемента более подробно, используя
модель программирования MessageContract.
в System.ServiceModel.Description.MessageContractExporter.AddElementToSchema (XmlSchemaElement
element, String elementNs,
XmlSchemaSet schemaSet)
в System.ServiceModel.Description.MessageContractExporter.ExportWrappedPart (Сообщение
сообщение, строка имя элемента, строка
elementNs, XmlSchemaSet schemaSet,
Логическое скипSchemaExport)
в System.ServiceModel.Description.DataContractSerializerMessageContractExporter.ExportBody (Int32
messageIndex, Состояние объекта)
в System.ServiceModel.Description.MessageContractExporter.ExportMessage (Int32
messageIndex, Состояние объекта)
в System.ServiceModel.Description.MessageContractExporter.ExportMessageContract ()
в System.ServiceModel.Description.DataContractSerializerOperationBehavior.System.ServiceModel.Description.IWsdlExportExtension.ExportContract (WsdlExporter
экспортера,
WsdlContractConversionContext
contractContext)
в System.ServiceModel.Description.WsdlExporter.CallExtension (WsdlContractConversionContext
contractContext, IWsdlExportExtension
расширение)