Хорошо, это управляет мной безумный. Я пытался создать код реализации услуги из предопределенного wsdl, и он последовательно возвращает сообщение по сервисному контракту/интерфейсу:
// CODEGEN: Generating message contract since the wrapper name (GetMetricsRequest) of message GetMetricsRequest does not match the default value (GetMetrics)
[System.ServiceModel.OperationContractAttribute(Action="GetMetrics", ReplyAction="*")]
[System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
GetMetricsResponse GetMetrics(GetMetricsRequest request);
Я попытался сделать это использование, svcutil.exe и WSCF's Генерирует мастер Служебного кода, и оба возвращают тот же результат.
Ниже WSDL, который я использую. Я включил типы здесь, у меня действительно есть они вспыхнувшими в отдельный xsd, просто не хотел отправлять обоих. Используя этот wsdl (со всеми встроенными типами) также генерирует те же проблемы.
Я рассмотрел это сообщение в блоге (http://pzf.fremantle.org/2007/05/handlign.html), это обо всем, что я мог найти относительно этой проблемы. Я думаю, что сделал все, что это говорит, чтобы сделать, но все еще имеет проблемы.
Кто-либо еще столкнулся с этим? Это является очень приводящим в бешенство, возможно, я пропускаю что-то очевидное. Любая справка будет значительно цениться.
Спасибо marc_s,
Хорошо, это, казалось, работало. Это было просто отсутствие' в типе ответа. DOH!
Теперь служебный код, кажется, генерирует прекрасный, но когда я просматриваю к своему сервису нет никакого contract/xsd's данных и на wsdl нет никаких операций.
Это просто похоже:
Я ожидал бы, что это будет похоже на wsdl, я сгенерировал код от, нет?
Попробуйте это - ваши сообщения запроса и ответа в WSDL должны быть
Так что попробуйте изменить свой WSDL в:
<wsdl:message name="GetMetrics">
<wsdl:part name="parameters" element="tns:GetMetricsRequest"/>
</wsdl:message>
<wsdl:message name="GetMetricsResponse">
<wsdl:part name="parameters" element="tns:GetMetricResponse"/>
</wsdl:message>
, а также обновить ваш PortType:
<wsdl:portType name="Metric">
<wsdl:operation name="GetMetrics">
<wsdl:input message="tns:GetMetrics"/>
<wsdl:output message="tns:GetMetricsResponse"/>
</wsdl:operation>
</wsdl:portType>
Это вообще поможет вообще?
Если нет: попробуйте обновить свой актуальный
В вашем XSD для соответствия той же модели - тип запроса должен совпадать с операцией, который вы вызываете, объект ответа должен быть (метод знамения).