在mvc 4中使用wcf服务的问题

时间:2013-05-08 07:41:49

标签: asp.net-mvc wcf asp.net-mvc-4

我的wcf应用程序IService1.cs

中有一个类和这样的接口
[ServiceContract]
    public interface IService1
    {
        [OperationContract]
        string insertValues(empInfo objInfo);
    }

    [DataContract]
    public class empInfo
    {
        string _organizationName = string.Empty;
        string _organizationAddr = string.Empty;
        int? _totalemp;
    }

在Service1.svc.cs中,我实现了该接口。

 public class Service1 : IService1
 {

 public string insertValues(empInfo objInfo)
        {
            .....
        }
 }

然后我创建了一个空的mvc4客户端应用程序来使用这个wcf服务。 我添加了ServiceReference,现在它作为ServiceReference.1出现在服务引用文件夹中。然后我这样做了 1.创建了一个名为Defalut1controller的控制器。 2.在此控制器中,我尝试添加以下行  ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client(); 在ActionResult里面。但无法获得ServiceReference1字。

当我像这样更新我的服务时出现它的(ServiceReference1)

从 - string insertValues(empInfo objInfo); - 到 - string insertValues(string objInfo);

现在我已经构建了这个wcf应用程序,并在我的客户端mvc4应用程序中更新了服务引用。现在

ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client();

行已启用。

我已尝试使用.net网络应用程序来使用相同的功能,我可以毫无问题地做到这一点,我错过了mvc4,请帮忙。提前谢谢..

3 个答案:

答案 0 :(得分:3)

我得到了答案,感谢stackoverflow。

这是解决方案:

  1. 右键单击“服务参考”
  2. 选择“配置服务参考”
  3. 选择指定引用程序集中的重用类型
  4. 只需选择除“Newtonsoft.json”
  5. 之外的所有内容

    它也适用于我。

答案 1 :(得分:0)

问题本身和您面临的问题对我来说有点不清楚,但您是否真的尝试在empInfo数据合同上公开任何公共属性?因为现在您只有3个私有字段,这些字段不会在客户端的代理代码中生成。

答案 2 :(得分:0)

Microsoft已在此更新中解决了此问题:http://support.microsoft.com/kb/2750149