ywt348861900 2019-01-25 18:00 采纳率: 0%
浏览 2094

基础连接已经关闭: 服务器关闭了本应保持活动状态的连接

**_************** 异常文本 **************
System.Net.WebException: 基础连接已经关闭: 服务器关闭了本应保持活动状态的连接。 ---> System.IO.IOException: 无法从传输连接中读取数据: 您的主机中的软件中止了一个已建立的连接。。 ---> System.Net.Sockets.SocketException: 您的主机中的软件中止了一个已建立的连接。
   在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
   在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   在 System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   在 System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
   在 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
   在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   在 SendClient.WebReference_PACS.Service1.addImage(String ConID, String SOPInstanceUID, String filename)
   在 SendClient.Form1.addImage(String ConID, String SOPInstanceUID, String filename)
   在 SendClient.Form1.button_newcon_send_Click(Object sender, EventArgs e)
   在 System.Windows.Forms.Control.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
   在 System.Windows.Forms.Button.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)*

     ************** 已加载的程序集 **************

网上很多都是说在Reference.cs里面添加
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest webRequest = (HttpWebRequest)
base.GetWebRequest(uri);
 webRequest.KeepAlive = false;
return webRequest;
}

但是添加了一直提示“错误 52 应输入 class、delegate、enum、interface 或 struct ”

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 19:29
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这段错误信息表明你在尝试使用base.GetWebRequest()方法获取HTTP请求时遇到了问题。这通常是因为你的应用程序正在调用一个没有正确实现IHttpConnectionHandler接口的方法。

    在.NET框架中,如果你想要创建一个新的HTTP请求对象(例如:HttpWebRequest),你首先需要实现一个名为IHttpConnectionHandler的接口,并重写其中的GetWebRequest方法。

    以下是一个简单的示例:

    public class CustomHttpConnectionHandler : IHttpConnectionHandler
    {
        public HttpWebRequest GetWebRequest(Uri address)
        {
            // 创建新的HTTP请求对象
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(address);
            
            // 设置一些属性,比如是否应该缓存等
            webRequest.KeepAlive = true; // 如果你需要缓存,请设置此属性为true
            
            return webRequest;
        }
    }
    

    然后,在你的主类中,你可以这样使用这个新创建的连接处理器:

    protected override WebRequest GetWebRequest(Uri uri)
    {
        return new CustomHttpConnectionHandler().GetWebRequest(uri);
    }
    
    // 其他...
    

    注意:上述代码只是一个基本示例,实际应用中可能还需要考虑更多因素,比如错误处理、超时控制等等。

    评论

报告相同问题?