【问题标题】:Can't Add Reference to My WCF Data Service无法添加对我的 WCF 数据服务的引用
【发布时间】:2011-05-20 01:34:34
【问题描述】:

我有一个 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...

有什么想法吗?

谢谢。

【问题讨论】:

    标签: .net wcf wcf-data-services


    【解决方案1】:

    添加服务引用时,您需要的是 $metadata 端点:

    http://localhost/Services/OData/Repository/$元数据

    【讨论】:

      【解决方案2】:

      您最近是否升级到另一个版本的 Windows?

      如果是这样,你需要运行

      ServiceModelReg -i
      

      您可以在 %WINDIR%\Microsoft.NET\Framework\version\Windows Communication Foundation 文件夹中找到它。

      【讨论】:

      • 否...并添加对其他 odata 源(如 services.odata.org/Northwind/Northwind.svc/ 作品)的引用。
      猜你喜欢
      • 2014-05-08
      • 1970-01-01
      • 2015-04-15
      • 1970-01-01
      • 2020-08-20
      • 2013-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多