Не могу добавить ссылку на мою службу данных WCF - PullRequest
3 голосов
/ 20 мая 2011

У меня есть служба данных WCF. Я могу просмотреть его в своем браузере, и я могу успешно выполнять запросы к нему через URL ... но я не могу добавить ссылку на службу и не могу добавить ее в OData Explorer ... это просто выдает ошибку

Документ по URL http://localhost/Services/OData/Repository/ не был признан известным документом типа.

Когда я обращаюсь к своему сервису в http://localhost/Services/OData/Repository/, я вижу

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<service xml:base="http://localhost/Services/OData/Repository/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
  <workspace>
    <atom:title>Default</atom:title>
    <collection href="Contacts">
      <atom:title>Contacts</atom:title>
    </collection>
  </workspace>
</service>

Именно этого я и ожидал бы. И если я перейду на http://localhost/Services/OData/Repository/Contacts, мои результаты Контактов будут успешно возвращены.

Я подозреваю, что это связано с тем, как я добавляю свой сервис OData, но я не уверен. У меня нет файла SVC. Вместо этого я добавляю маршрут в свой RouteTable следующим образом:

RouteTable.Routes.Add(new ServiceRoute("Services/OData/Repository", 
                                       new DataServiceHostFactory(), 
                                       typeof(IMyRepository));

У меня есть файл clientaccesspolicy.xml, но это не должно иметь значения, поскольку это localhost ...

Есть идеи?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 25 мая 2011

При добавлении ссылки на сервис вам нужна конечная точка метаданных $:

http://localhost/Services/OData/Repository/$metadata

0 голосов
/ 20 мая 2011

Недавно вы обновились до другой версии Windows?

Если это так, вам нужно запустить

ServiceModelReg -i

Вы можете найти это в папке% WINDIR% \ Microsoft.NET \ Framework \ version \ Windows Communication Foundation.

...