C# 无法从正在发送响应文件的特定WCF服务操作中获取数据

C# 无法从正在发送响应文件的特定WCF服务操作中获取数据,c#,web-services,wcf,C#,Web Services,Wcf,我有一个WCF服务,有许多方法,其中两种是传输文件。一个工作正常,它在一行中以字节数组的形式发送3个文件。但另一个是发送一个数据库行列表,其中每行中都有一个Docx文件。当WCF客户端调用此操作时,它会在服务器端成功运行,并从数据库中提取行,但在发送响应后,客户端会收到以下异常: 接收对的HTTP响应时出错 . 这可能是应得的 到未使用HTTP协议的服务端点绑定。这 也可能是由于HTTP请求上下文被 服务器(可能是由于服务关闭)。请参阅服务器l ogs 更多细节。基础连接已关闭:出现意外错误 接

我有一个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秒,请增加传输和接收时间。所有的东西都在同一台机器上,我相信不会超过一秒钟。