2009-02-20 2 views
2

Это случилось пару раз со мной. Если я добавлю во многие операции OperationContract к ServiceContract, приложение клиента Test WCF выдает исключение:Существуют ли известные ограничения с приложением WCF Test Client?

«Не удалось добавить службу. Метаданные службы могут быть недоступны. Убедитесь, что ваша служба запущена и выставляет метаданные».

В деталях он продолжает:

Ошибка: Не удается получить метаданные из. Ошибка запроса с HTTP-статусом 400: неверный запрос.

Если я удалю пару контрактов на работу, тогда все будет в порядке. За пределами тестового клиента тоже отлично.

+0

есть, я не знаю, связано ли это с вашим. У меня была проблема с огромным определением контракта, но я не думаю, что у меня ошибка 400. Шахта была связана с ограничением размера передаваемого определения. Дайте мне секунду, и я увижу, что я сделал, чтобы исправить это. –

ответ

0

Спасибо за ответы.

Это были обижая линии:

<OperationContract(), FaultContract(GetType(WcfService.Common.DefaultFaultContract))> _ 
Function GetJobSubTypesForJobTypeList(ByVal jobTypeList As Dictionary(Of Integer, String)) As List(Of JobSubTypeOfJobTypeDTO) 

<OperationContract(), FaultContract(GetType(WcfService.Common.DefaultFaultContract))> _ 
Function GetActivityTypesForJobTypeList(ByVal jobTypeList As Dictionary(Of Integer, String)) As List(Of ActivityTypeOfJobTypeDTO) 

Оказалось, что нам не хватало сеттеры в типах возврата (DTO) и конструктор по умолчанию.

+0

где у вас эти линии? – PawanS

+0

Прошу прощения, два года назад на другую работу - не помню – Kevin

1

Не могли бы вы уточнить, какие операции необходимо удалить из договора на обслуживание, чтобы заставить его работать?

Ниже перечислены некоторые известные ограничения в инструменте WcfTestClient.exe, который поставляется с .NET Framework 3.5 SDK. Обратите внимание, что все эти проблемы были исправлены в версии, поставляемой с .NET 3.5 SP1.

  • клиент не поддерживает сеанса запускаемой службу. Все звонки осуществляются на новых прокси экземпляров
  • автоматически сгенерированный конфигурационный файл для клиента прокси-сервера можно просматривать, но не редактировать
  • Services с помощью XML Serializer вместо данных контракта Serializer не может быть вызван
  • Услуги с использованием Сообщения контрактов не может быть вызвана
0

Это то, что я должен был добавить к моему devenv.exe.config, чтобы получить мой WCF Test Client для работы с очень большим сервисом. Затем мне пришлось перезапустить IDE. Возможно, это не то, что вы ищете, но я надеюсь, что это поможет.

<system.serviceModel> 
    <bindings> 
    <customBinding> 
     <binding name="MyBinding"> 
     <textMessageEncoding> 
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/> 
     </textMessageEncoding> 
     <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"/> 
     </binding> 
    </customBinding> 
    </bindings> 
    <client> 
    <endpoint binding="customBinding" bindingConfiguration="MyBinding" contract="IMetadataExchange" name="http"/> 
    </client> 
</system.serviceModel> 
0

Это одна из самых странных проблем, с которыми я столкнулся. Вы, возможно, придется пересмотреть свой код и обратите внимание на такие проблемы, как:

Private _NetPay As Boolean 
<DataMember()> _ 
Public Property NetPay() As Boolean 
    Get 
     Return _Amount = 0 
    End Get 
    Set(ByVal value As Boolean) 
     _NetPay = value 
    End Set 
End Property 

я определил DataMember как выше. Обратите внимание на возвращаемый статус. Он пытается вернуть вычисленное значение. Я удалил этот элемент данных; он работал нормально.

Смежные вопросы