【问题标题】:Uploading a file to REST WCF service connection forcibly closed issue将文件上传到 REST WCF 服务连接强制关闭问题
【发布时间】:2014-03-07 08:55:35
【问题描述】:

我在 IIS 7.5 和 IIS8 上托管了 WCF websrvice,我正在使用 REST 端点从我的 Web 应用程序与 Web 服务进行通信。 我正在使用 httpWebrequest 上传文件,并且我已经在双方的 web.config 中设置了所有可能的设置,以确保 asp.net 允许我上传大文件。 它在 IIS 8 中处理大文件时工作正常,但在 IIS 7.5 中出现以下错误:

事件代码:3005 事件消息:发生未处理的异常。 活动时间:10/02/2014 4:04:39 PM 活动时间(UTC):10/02/2014 6:04:39 AM 事件 ID:8aea1d07d67743ba81a4c46bcd622ed1 事件顺序:63 事件发生:1 事件详情代码:0

申请信息: 应用域:/LM/W3SVC/1/ROOT/OP.Web-1-130364857480032265 信任级别:完全

工艺信息: 进程号:5320 进程名称:w3wp.exe 账户名:IIS APPPOOL\MyApplication AppPool

异常信息: 异常类型:IOException 异常消息:无法从传输连接读取数据:现有连接被远程主机强制关闭。 在 System.Net.Sockets.NetworkStream.Read(字节 [] 缓冲区,Int32 偏移量,Int32 大小) 在 System.Net.PooledStream.Read(字节 [] 缓冲区,Int32 偏移量,Int32 大小) 在 System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)

现有连接被远程主机强行关闭 在 System.Net.Sockets.Socket.Receive(Byte[] 缓冲区,Int32 偏移量,Int32 大小,SocketFlags socketFlags) 在 System.Net.Sockets.NetworkStream.Read(Byte[] 缓冲区,Int32 偏移量,Int32 大小)

如果您能帮我解决这个问题,我将不胜感激。

【问题讨论】:

    标签: wcf rest file-upload httpwebrequest


    【解决方案1】:

    有两个不同的地方可以在 IIS 中指定请求大小,如下所述 in this answer。也可能在 WFC 架构中添加其他位置。但所有这些都限制为 4GB(或在某些情况下为 2GB)。在我们的一个实现中,我们发现最好的方法是托管一个基于 Owin 的自定义 Web 服务器来专门处理上传的请求。只需几行代码即可启动并运行它,并且在 asp.net 网站上提供了示例。

    【讨论】:

      猜你喜欢
      • 2013-06-08
      • 2014-08-26
      • 2012-01-26
      • 1970-01-01
      • 2010-10-11
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      相关资源
      最近更新 更多