2011-11-09 17 views
2

私たちのバックエンドアプリケーションの1つを制御するnet.tcpベースのWCFサービスを作成しています。 Windowsマシンでの開発とテストでは、すべてが期待通りに機能しました。 しかし、同じWindowsボックス(Mono 2.10.6)またはDebian Squeeze(Mono 2.10.5)でMonoを使って同じアプリケーションを実行しようとしたとき、私は突然ChannelFactoryTypeLoadExceptionを取得します。それが失敗しただけで、このコールに降りてくる最後にChannelFactory <>。CreateChannelのMono TypeLoadException .NET/Windowsでは例外ではありません

controlHost = ChannelFactory<IControlServiceContract>.CreateChannel(
    new NetTcpBinding(SecurityMode.None), 
    new EndpointAddress(endpointAddress) 
); 

別のアセンブリでIControlServiceContractため、この定義に:すなわち使用して直接起動時に正常に動作

[ServiceContract] 
public interface IControlServiceContract 
{ 
    [OperationContract(IsOneWay = true)] 
    void Ping(); 

    [OperationContract(IsOneWay = true)] 
    void Shutdown(); 

    [OperationContract] 
    int GetCommandCount();   
} 

(。ネット)。

それがこのスーパー甘いスタックトレースでクラッシュかかわらmono --debug --runtime=v4.0を使用して実行:

! Ein Fehler ist beim Erzeugen des Kanals auf net.tcp://localhost:34684/watchdog/watchdog.ctrl/ aufgetreten 

    A type load exception has occurred. 
    at System.Linq.Enumerable.Union[Object] (IEnumerable`1 first, IEnumerable`1 second, IEqualityComparer`1 comparer) [0x00014] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.Core\System.Linq\Enumerable.cs:2948 
    at System.Linq.Enumerable.Union[Object] (IEnumerable`1 first, IEnumerable`1 second) [0x00007] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.Core\System.Linq\Enumerable.cs:2938 
    at System.ServiceModel.Description.ContractDescriptionGenerator.GetOrCreateOperation (System.ServiceModel.Description.ContractDescription cd, System.Reflection.MethodInfo mi, System.Reflection.MethodInfo serviceMethod, System.ServiceModel.OperationContractAttribute oca, System.Type asyncReturnType, Boolean isCallback, System.Type givenServiceType) [0x001f2] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel.Description\ContractDescriptionGenerator.cs:314 
    at System.ServiceModel.Description.ContractDescriptionGenerator.FillOperationsForInterface (System.ServiceModel.Description.ContractDescription cd, System.Type exactContractType, System.Type givenServiceType, Boolean isCallback) [0x00131] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel.Description\ContractDescriptionGenerator.cs:240 
    at System.ServiceModel.Description.ContractDescriptionGenerator.GetContractInternal (System.Type givenContractType, System.Type givenServiceType, System.TypeserviceTypeForCallback) [0x00296] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel.Description\ContractDescriptionGenerator.cs:197 
    at System.ServiceModel.Description.ContractDescriptionGenerator.GetContract (System.Type givenContractType, System.Type givenServiceType, System.Type serviceTypeForCallback) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel.Description\ContractDescriptionGenerator.cs:136 
    at System.ServiceModel.Description.ContractDescriptionGenerator.GetContract (System.Type givenContractType, System.Type givenServiceType) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel.Description\ContractDescriptionGenerator.cs:131 
    at System.ServiceModel.Description.ContractDescriptionGenerator.GetContract (System.Type contractType) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel.Description\ContractDescriptionGenerator.cs:101 
    at System.ServiceModel.Description.ContractDescription.GetContract (System.Type contractType) [0x00017] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel.Description\ContractDescription.cs:66 
    at System.ServiceModel.ChannelFactory`1[com.derixx.dll.controlservicehost.ServiceBase.IControlServiceContract].CreateDescription() [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel\ChannelFactory_1.cs:185 
    at System.ServiceModel.ChannelFactory`1[com.derixx.dll.controlservicehost.ServiceBase.IControlServiceContract]..ctor (System.Type type) [0x00033] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel\ChannelFactory_1.cs:56 
    at System.ServiceModel.ChannelFactory`1[com.derixx.dll.controlservicehost.ServiceBase.IControlServiceContract]..ctor (System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) [0x00000] in <filename unknown>:0 
    at System.ServiceModel.ChannelFactory`1[com.derixx.dll.controlservicehost.ServiceBase.IControlServiceContract].CreateChannel (System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress address) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.10.6\mcs\class\System.ServiceModel\System.ServiceModel\ChannelFactory_1.cs:130 
    at applicationframework.ControlApplicationBase.ConnectionCreate (IControlServiceContract& controlHost, System.String endpointHost, Int32 endpointPort, System.String endpointPath) [0x00000] in <filename unknown>:0 

彼のプロジェクトをint使用されるすべてのアセンブリは、当社独自のフレームワーク4.0を対象としたもの、コアアセンブリとlog4netの1.2.10/2.0のどちらかであります.50727。

誰かがこれが何であるのか、そしてどこから掘り起こすべきかの手がかりを持っていますか?

答えて

2

.NETで動作し、Monoではない場合、間違いなくバグです。

私が先に行くだろうと最初にすることは、IRCにhttp://bugzilla.xamarin.com/

次に多分たまり場でそれを提出する://irc.gnome.org/mono、とのメンテナである敦榎本(ニック「ENO」)を突きます彼が何を考えているかを見るためにWCF。

+0

、ありがとう! – sunside

+1

あなたが作成したバグ番号は何ですか?あなたは解決を得ましたか? – scotru

関連する問題