ChannelFactory<> .CreateChannel中的Mono TypeLoadException,.NET / Windows上没有例外

时间:2011-11-09 19:05:44

标签: c# wcf c#-4.0 mono typeloadexception

我正在创建一个基于net.tcp的WCF服务来控制我们的一个后端应用程序。在Windows机器上进行开发和测试期间,一切都按预期工作。 但是,当我尝试在同一个Windows框(Mono 2.10.6)或Debian Squeeze(使用Mono 2.10.5)上使用Mono运行相同的应用程序时,我突然在{{1}中获得TypeLoadException }}

最后,归结为此次调用失败:

ChannelFactory

在另一个程序集中使用controlHost = ChannelFactory<IControlServiceContract>.CreateChannel( new NetTcpBinding(SecurityMode.None), new EndpointAddress(endpointAddress) ); 的定义:

IControlServiceContract

直接启动时运行正常(即使用.NET)。

当使用[ServiceContract] public interface IControlServiceContract { [OperationContract(IsOneWay = true)] void Ping (); [OperationContract(IsOneWay = true)] void Shutdown (); [OperationContract] int GetCommandCount (); } 执行时虽然它与这个超级甜蜜堆栈跟踪崩溃:

mono --debug --runtime=v4.0

他的项目中使用的所有程序集都是我们自己的目标框架4.0,核心程序集和log4net 1.2.10 / 2.0.50727。

有没有人知道这可能是什么以及我应该从哪里开始挖掘?

1 个答案:

答案 0 :(得分:2)

好吧,如果它适用于.NET而不是Mono,那肯定是一个bug。

我会继续,首先在http://bugzilla.xamarin.com/

提交

然后可能会在irc://irc.gnome.org/mono中进行视频群聊,然后戳一下WCF的维护者Atsushi Enomoto(尼克“eno”)来看看他的想法。