无法将从WCF中的db检索到的值传递给MVC 4中的Web控制器

时间:2014-03-12 06:45:49

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

我需要编写一个从db检索数据并需要将此数据传递给Web控制器的方法。 我在WCF中编写了一个方法,并在MVC 4中从Web控制器调用此方法。

但它提供了异常:这可能是由于服务端点绑定不使用HTTP协议。这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)。

内部异常:基础连接已关闭:接收时发生意外错误。

问题陈述:需要在wcf中使用linq从db获取数据,并且需要将其传递给MVC中的控制器。

对于例外我尝试使用以下解决方案,但我仍然面临问题:

1>建议在Web.config中添加Servicepointmanager

<system.net>
    <settings>
      <servicePointManager expect100Continue="false" />
    </settings>
  </system.net>

2&gt;建议在web.config中添加最大缓冲区大小和最大接收大小:

<basicHttpBinding>
    <binding name="BasicHttpBinding_IService1" maxBufferSize="64000000" maxReceivedMessageSize="64000000" />
  </basicHttpBinding>

我做错了什么?

在WCf:

public dynamic GetCountry()
        {
            var ddlCountry = (from s in dbEntity.Countries
                              select s);
            return ddlCountry;
        }

在Controller中将此wcf方法称为:

public dynamic GetAllCountries()
        {
            var country = objSvcMasterConfig.GetCountry();
            return country ;
        }

1 个答案:

答案 0 :(得分:1)

这就是我解决问题的方法:

  • 1&GT;而不是动态数据类型我使用列表数据类型
  • 2 - ;创建数据合同和运营合同

[数据合约]

    public class Countries
    {
       //Added my data contract members
     }

服务合同:

   [OperationContract]
        List<Countries> GetCountry();
  • 第3&GT;已实施运营中的服务合同

    public List<Countries> GetCountry()
    {
        try
        {
            List<Countries> objCountry = new List<Countries>();
            var query = (from s in dbEntity.Countries select new Countries() { CountryID = s.CountryID, Name = s.Name });
            objCountry = query.ToList<Countries>();
            return objCountry.ToList();
        }
        catch
        {
            return null;
        }
    
    }
    
  • <强> 4&GT;在MVC控制器中调用此WCF服务方法

     var result=objSvc.GetCountry();