HTTP 400 Плохая ошибка Запроса, пытающаяся добавить веб-ссылку на Сервис WCF

Я пытался портировать веб-сервис WSE 3 прежней версии на WCF. Начиная с поддержания назад совместимости с WSE 3 клиента являются целью, я следовал за руководством в этой статье.

После большого метода проб и ошибок я могу назвать сервис WCF от своего клиента WSE 3. Однако я не могу добавить или обновить веб-ссылку на этот сервис из Visual Studio 2005 (с установленным WSE 3). Ответ является "Запросом, отказавшим с состоянием HTTP 400: Плохой Запрос". Я получаю ту же ошибку при попытке генерировать прокси с помощью wsewsdl3 утилиты. Я могу добавить Сервисную Ссылку использование VS 2008.

Я попытался разместить сервис в IIS 7.5 и в Windows 7 и в Windows 2008 Server R2 с тем же результатом. Какие-либо решения или рекомендации по устранению отказов?

Вот соответствующие разделы из файла конфигурации для моего сервиса WCF.


    
      
        
        
      
    

    
      
        
          
           
          
        
      
    

    
      
        
          
          
          
            
          
          
        
      
    
    
  

ОБНОВЛЕНИЕ: После попытки предложения трассировки Paul я решил, что исключением является Система. Xml. XmlException: тело сообщения не может быть считано, потому что это пусто

К сожалению, это, кажется, не помогает. Еще одна вещь, которую я заметил, состояла в том, что был отдельный httpsGetEnabled атрибут serviceMetadata элемента. Я добавил, что и установил его на истинный, так как это - https сервис, но результатом было то же. Кажется, что по некоторым причинам WCF не распознает, что это - запрос метаданных.

7
задан Kevin Krueger 26 May 2010 в 00:53
поделиться

1 ответ

Вы можете попробовать включить трассировку WCF на сервере. Вставьте это до строки :

<diagnostics>

    <messageLogging 
     logEntireMessage="true" 
     logMalformedMessages="true" 
     logMessagesAtServiceLevel="true" 
     logMessagesAtTransportLevel="false" 
     maxMessagesToLog ="3000" />

</diagnostics>

Вставьте это после строки :

<system.diagnostics>
    <sharedListeners>
        <add name="sharedListener" 
          type="System.Diagnostics.XmlWriterTraceListener"
          initializeData="c:\logs\tracelog.svclog" />
    </sharedListeners>
    <sources>
        <source name="System.ServiceModel" switchValue="Verbose, ActivityTracing" >
            <listeners>
                <add name="sharedListener" />
            </listeners>
        </source>
        <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
            <listeners>
                <add name="sharedListener" />
            </listeners>
        </source>
        <source name="ApplicationLogging" switchValue="Information" >
            <listeners>
                <add name="sharedListener" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>   

После дублирования ошибки запустите средство трассировки WCF и откройте файл журнала. Вероятно, имеет место какое-то исключение.

-- EDIT --

Что ж, это интересное сообщение об ошибке. Оно приводит к другим результатам Google:

  1. Еще один вопрос на stackoverflow
  2. Может быть исправлено в следующем выпуске Windows 7
  3. TransferMode.StreamedResponse
2
ответ дан 7 December 2019 в 18:40
поделиться
Другие вопросы по тегам:

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