4

我正在为我们的服务创建一个 Asp.net Webapi。另一方面,我必须从现有的 WCF 服务中提取一些数据。

我正在我的 asp.net webapi 项目中创建一个 Web 引用。但似乎没有生成代理。

我尝试使用 VS 2012 RC,然后使用 VS 2010。我无法在项目中的任何位置从我的模型/控制器中引用它。在 MVC webapi 中创建代理是否有不同的方法。我不知道出了什么问题。

它是否必须做一些事情,比如我不能从休息服务中消费 wcf 服务

我在这里缺少什么。

谢谢。

4

2 回答 2

3

尝试添加服务引用而不是 Web 引用,后者用于已弃用的 ASP.NET Web 服务 (ASMX)。

我刚试过这个,它按预期工作。这是我所做的:

  1. 创建了一个新的 ASP.NET MVC 4 Web 应用程序并选择了 Web API 项目模板。
  2. 向解决方案添加了 WCF 服务应用程序项目。请记住在添加服务引用之前构建它。
  3. 在 Web APi 项目中,我添加了对 WCF 服务的服务引用。
  4. 将 ValuesController.Get(int id) 中的代码替换为

    public string Get(int id)
    {
        var serviceReference1 = new ServiceReference1.Service1Client();
        return serviceReference1.GetData(id);
    }
    

浏览时

http://localhost:<port>/api/values/2

我收到

<?xml version="1.0" encoding="utf-8"?><string>You entered: 2</string>
于 2012-07-11T10:43:32.087 回答
1

如果添加了您的服务引用,但 reference.cs 生成为空,则可能是类型冲突的问题。以下解决方法对我有用。

要更正它,请右键单击服务引用,单击配置服务引用。在配置屏幕上,取消选中“在引用的程序集中重用类型”。如果没有强制更新,它应该自动更新服务引用。

这应该会适当地生成 reference.cs 文件。

于 2014-08-06T06:20:33.080 回答