Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mono上的.NET远程处理:Uri已在使用中_C#_.net_Mono_.net Remoting - Fatal编程技术网

C# Mono上的.NET远程处理:Uri已在使用中

C# Mono上的.NET远程处理:Uri已在使用中,c#,.net,mono,.net-remoting,C#,.net,Mono,.net Remoting,运行: Ubuntu 10.04,32位 Mono 2.6.7 我有一个在VS2008中开发的应用程序,它使用.NET远程处理(带有一个自定义的远程处理UdpChannel类)。我们正在尝试在linux上运行它(在MonoDevelop中构建),但是我收到了以下错误 导致异常的代码: this.server = RemotingServices.Marshal(this, objectUri); 例外情况: System.Runtime.Remoting.RemotingException

运行:

  • Ubuntu 10.04,32位
  • Mono 2.6.7
我有一个在VS2008中开发的应用程序,它使用.NET远程处理(带有一个自定义的远程处理UdpChannel类)。我们正在尝试在linux上运行它(在MonoDevelop中构建),但是我收到了以下错误

导致异常的代码:

this.server = RemotingServices.Marshal(this, objectUri);
例外情况:

System.Runtime.Remoting.RemotingException: Uri already in use:
过去,如果有多个远程处理应用程序在运行,我们在窗口端运行时会收到此错误,但通过为每个应用程序创建一个新的appdomain修复了此错误。然而,在linux端,这似乎并不影响它。此外,我们不尝试运行多个远程应用程序,只运行一个


对这个问题有什么想法吗?谢谢

我们解决此问题的方法:

从远程处理配置文件中删除一个标记,该标记导致在两个位置都添加远程处理对象

RemotingConfiguration.Configure(configurationFile, false);

移除的标签是:

<service>

   <wellknown mode="Singleton" objectUri="FileSyncer.rem" type="MyLib.FileSyncerServer, MyLib" />

</service>


这只需要从服务器端完成。

您的对象URI是空的吗?objectUri的值是什么?URI值打印在错误消息中,并与配置文件中指定的值匹配;我只是在这里把它从错误信息中剪掉了。所以看起来它得到的值很好。objectUri的值是“RemotingActivationService.rem”吗?在Mono 2.6.7下,默认情况下,RemotingServices类会添加一个众所周知的服务器标识,其URI为“RemoteActivationService.rem”。如果您也使用此uri,则会得到描述的异常。否,该值是自定义的“name.rem”。我将在下面发布我们的解决方法。谢谢你,解决了一个愚蠢的问题。有趣的是,这只发生在Ubuntu/Mono上,而不是在Win7/.NET上
<service>

   <wellknown mode="Singleton" objectUri="FileSyncer.rem" type="MyLib.FileSyncerServer, MyLib" />

</service>