C# 无法从正在发送响应文件的特定WCF服务操作中获取数据
我有一个WCF服务,有许多方法,其中两种是传输文件。一个工作正常,它在一行中以字节数组的形式发送3个文件。但另一个是发送一个数据库行列表,其中每行中都有一个Docx文件。当WCF客户端调用此操作时,它会在服务器端成功运行,并从数据库中提取行,但在发送响应后,客户端会收到以下异常: 接收对的HTTP响应时出错 . 这可能是应得的 到未使用HTTP协议的服务端点绑定。这 也可能是由于HTTP请求上下文被 服务器(可能是由于服务关闭)。请参阅服务器l ogs 更多细节。基础连接已关闭:出现意外错误 接收时发生错误 最低代码如下所示:C# 无法从正在发送响应文件的特定WCF服务操作中获取数据,c#,web-services,wcf,C#,Web Services,Wcf,我有一个WCF服务,有许多方法,其中两种是传输文件。一个工作正常,它在一行中以字节数组的形式发送3个文件。但另一个是发送一个数据库行列表,其中每行中都有一个Docx文件。当WCF客户端调用此操作时,它会在服务器端成功运行,并从数据库中提取行,但在发送响应后,客户端会收到以下异常: 接收对的HTTP响应时出错 . 这可能是应得的 到未使用HTTP协议的服务端点绑定。这 也可能是由于HTTP请求上下文被 服务器(可能是由于服务关闭)。请参阅服务器l ogs 更多细节。基础连接已关闭:出现意外错误 接
[DataContract]
public class Document
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public byte[] File { get; set; }
[DataMember]
public int SchemaId { get; set; }
[ForeignKey("SchemaId")]
public virtual Schema Schema { get; set; }
}
[ServiceContract]
public interface IService
{
[OperationContract]
List<Document> GetDocuments(int schemaId);
}
public class Service : IService, IDisposable
{
DbContext db = new DbContext();
public List<Document> GetDocuments(int schemaId)
{
List<Document> docs = db.Documents.Where(d => d.SchemaId == schemaId).ToList();
return docs;
}
}
public partial class ServiceClient : System.ServiceModel.ClientBase<IService>, IService
{
public Document[] GetDocuments(int schemaId)
{
return base.Channel.GetDocuments(schemaId);
}
}
try
{
ServiceClient client = new ServiceClient("BasicHttpBinding_IService");
client.Open();
List<Document> docs = client.GetDocuments(9).ToList();
client.Close();
}
catch{}
[DataContract]
公共类文档
{
[数据成员]
公共int Id{get;set;}
[数据成员]
公共字符串名称{get;set;}
[数据成员]
公共字节[]文件{get;set;}
[数据成员]
公共int SchemaId{get;set;}
[外键(“SchemaId”)]
公共虚拟架构{get;set;}
}
[服务合同]
公共接口设备
{
[经营合同]
列表文件(int schemaId);
}
公共类服务:IService,IDisposable
{
DbContext db=new DbContext();
公共列表GetDocuments(int schemaId)
{
List docs=db.Documents.Where(d=>d.SchemaId==SchemaId.ToList();
退货单据;
}
}
公共部分类ServiceClient:System.ServiceModel.ClientBase,iSeries设备
{
公共文档[]获取文档(int schemaId)
{
返回base.Channel.GetDocuments(schemaId);
}
}
尝试
{
ServiceClient=新的ServiceClient(“BasicHttpBinding_iSeries设备”);
client.Open();
List docs=client.GetDocuments(9.ToList();
client.Close();
}
捕获{}
在WCF客户端配置文件中,我使用默认值basicHttpBinding
。收到此异常后,我尝试在客户端的绑定上增加maxReceivedMessageSize
,但仍然收到相同的异常
请建议,我如何解决此问题?如果您的数据发送时间超过90秒,请增加传输和接收时间。所有的东西都在同一台机器上,我相信不会超过一秒钟。