我需要编写一个从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 ;
}
答案 0 :(得分:1)
这就是我解决问题的方法:
[数据合约]
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();