Генерирование кода от WSDL в WCF продолжает возвращаться, сообщение не соответствует значению по умолчанию

Хорошо, это управляет мной безумный. Я пытался создать код реализации услуги из предопределенного 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, я сгенерировал код от, нет?

7
задан Brutus35 30 January 2010 в 16:27
поделиться

1 ответ

[11349485-

Попробуйте это - ваши сообщения запроса и ответа в WSDL должны быть

  • То же самое имя, что и ваша операция по запросу («GetMetrics»)
  • Имя операции + «Ответ «Для вашего ответа (« GetMetricsResponse »)

Так что попробуйте изменить свой 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 для соответствия той же модели - тип запроса должен совпадать с операцией, который вы вызываете, объект ответа должен быть (метод знамения).

5
ответ дан 7 December 2019 в 05:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: