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 ??
}