C# 停止.Net远程处理

C# 停止.Net远程处理,c#,.net,remoting,C#,.net,Remoting,按钮启动\u单击:调用启动服务() 按钮停止\u单击:调用停止服务() 很明显,两次单击按钮启动会导致“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”异常 问题是如何在不终止应用程序的情况下停止响应远程调用 在第一次调用buttonStart\u Click时设置一个标志,如果设置了标志,则跳过远程处理功能?在第一次调用buttonStart\u Click时设置一个标志,如果设置了标志,则跳过远程处理功能,怎么样 ChannelServices.取消注册频道(channel)试试看

按钮启动\u单击
:调用
启动服务()

按钮停止\u单击
:调用
停止服务()

很明显,两次单击
按钮启动
会导致“每个套接字地址(协议/网络地址/端口)通常只允许使用一次”异常


问题是如何在不终止应用程序的情况下停止响应远程调用

在第一次调用buttonStart\u Click时设置一个标志,如果设置了标志,则跳过远程处理功能?

在第一次调用buttonStart\u Click时设置一个标志,如果设置了标志,则跳过远程处理功能,怎么样

ChannelServices.取消注册频道(channel)

试试看


ChannelServices.取消注册频道(channel)

看起来您正在编写新代码。如果是这样的话,你最好放弃远程处理,深入研究WCF。启动、停止和重新启动远程处理的功能是什么?为什么不在应用程序的整个生命周期内建立连接,只使用一个连接呢?.Net remoting是让服务进行通信的一种简单方法,它取决于他想要实现什么,如果WCF真的能更好地解决他的问题。WCF也很容易。它的另一个优点是不过时。问题是如何在不终止应用程序的情况下停止响应远程调用。这看起来像是在编写新代码。如果是这样的话,你最好放弃远程处理,深入研究WCF。启动、停止和重新启动远程处理的功能是什么?为什么不在应用程序的整个生命周期内建立连接,只使用一个连接呢?.Net remoting是让服务进行通信的一种简单方法,它取决于他想要实现什么,如果WCF真的能更好地解决他的问题。WCF也很容易。它的另一个优点是不过时。问题是如何在不终止应用程序的情况下停止响应远程呼叫。除了John Saunders answer之外,您还可以尝试了解该频道是否已注册。除了John Saunders的回答之外,您还可以尝试了解该频道是否已经注册。
    public static void StartService()
    {
        Hashtable t = new Hashtable();
        t["port"] = portnumber;
        t["name"] = "somechannel";

        channel= new TcpChannel(t, null, null);

        ChannelServices.RegisterChannel(channel, false);
        RemotingConfiguration.RegisterWellKnownServiceType(typeof(someRemoteObject), "somedomain", WellKnownObjectMode.SingleCall);
    }

    public static void StopService()
    {
         //what should I do ??
    }