2008-10-09 5 views
13

Когда я пытаюсь протестировать AutoLotWCFService с помощью wcftestclient, я получаю следующую ошибку. Что я делаю не так? Любое понимание поможет. Это простой веб-сервис, который имеет wshttpbinding с интерфейсом контракта и реализации в службе. Вот длинное сообщение об ошибке: файл Web.Config имеет 2 конечных точки - один для самого веб-сервиса и другого для metaDataExchange. Его все в значительной степени по умолчанию. Я могу включить код в случае необходимости - кажется, я не могу прикреплять файлы здесь.WCF Ошибки с использованием WCFTestClient для проверки простой веб-службы WCF


Error: Cannot obtain Metadata from http://localhost/AutoLotWCFService/Service.svc 
If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. 
For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455. 
WS-Metadata Exchange Error 
    URI: http://localhost/AutoLotWCFService/Service.svc 
    Metadata contains a reference that cannot be resolved: 'http://localhost/AutoLotWCFService/Service.svc'. 
    The remote server returned an unexpected response: (405) Method not allowed. 
    The remote server returned an error: (405) Method Not Allowed. 
    HTTP GET Error URI: http://localhost/AutoLotWCFService/Service.svc 
    The document at the url http://localhost/AutoLotWCFService/Service.svc was not recognized as a known document type.The error message from each known type may help you fix the problem: 
    - Report from 'DISCO Document' is 'Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.'. 
    - Report from 'WSDL Document' is 'There is an error in XML document (1, 2).' -Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2. 
    - Report from 'XML Schema' is 'Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.'. 

+0

Можете ли вы включить разделы конфигурации, относящиеся к службе? Трудно сказать, что это происходит. – Bryant 2008-10-09 22:33:28

+0

Также будет полезен контракт на передачу (и любые контракты с данными). – 2008-10-10 13:41:02

ответ

0

вы должны убедиться, что поведение службы конфигурации позволяет имеет тег метаданных с httpGetEnabled = «истинный»

<serviceBehaviors> 
    <behavior name="serviceBehavior"> 
    <serviceMetadata httpGetEnabled="true"> 
    </behavior> 
</serviceBehaviors> 

Кроме того, убедитесь, что ваши ссылки службы, которые поведение.


<service name="blah" behaviorConfiguration="serviceBehavior"> 
0

Thanks; верьте или нет, проблема по крайней мере загрузки службы через wcftestclient была решена, когда я перерегистрировал ASPNET в IIS с aspnet-regiis.

Следующая проблема заключается в возможности вызвать методы, предоставляемые службой через wcftestclient. Каковы проблемы безопасности, с которыми мне приходится иметь дело? Мне пришлось включить анонимный вход с помощью windows auth. и все еще вызываются генерируемые исключения, указывающие на что-то, связанное с нарушением прав доступа. При поиске некоторые вещи указывают на установку сертификатов, которые можно вызвать. Пожалуйста, просветите, если это возможно.

15

У меня недавно возникла эта проблема, пытаясь разместить WCF на моем ноутбуке под управлением Windows Vista под IIS7.

Сначала я получил следующую ошибку: «Ошибка HTTP 404.3 - не найдена», и одна из предложенных разрешений заключалась в том, чтобы «убедиться, что ожидаемый обработчик для текущей страницы отображается».

Поэтому я добавил обработчик для файла .svc вручную и определил его как DiscoveryRequestHandler, считая, что это может помочь. Это вызвало проблему, описанную выше.

Фактическое разрешение было удалить обработчик я добавил, и выполнить следующие команды:

CD c:\windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ 
ServiceModelReg -i 

Это помогло устранить ошибку и служба работает нормально. Надеюсь, это поможет пролить свет на вашу проблему. Я не могу быть уверен, но это, вероятно, из-за порядка, в котором я установил различные пакеты на своем ноутбуке dev.

0

Попробуйте проверить, является ли сервис (имя) в Сервисной разметке (щелкните правой кнопкой мыши на servicename.svc), соответствующий службе (имени) в файле web.config.

Cheers!

1

Если установка compenonts не работает, попробуйте ремонт, это удаляет и затем устанавливает.

"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r