尝试运行以mono格式托管服务的服务时,我收到以下异常:
System.Reflection.TargetInvocationException: 例外已被抛出 调用的目标。 ---> System.InvalidOperationException:At 至少有一个BindingElement 绑定必须覆盖GetProperty 返回MessageVersion的方法和 没有先前的绑定元素应该返回 null而不是调用 GetInnerProperty方法on 的BindingContext。
相同的服务在Microsoft堆栈中完美运行。
服务配置如下:
<system.serviceModel>
<services>
<service name="BinaryAnalysis.MonoService.InformationService"
behaviorConfiguration="InformationService_ServiceBehavior">
<endpoint address="net.tcp://localhost:9000/service" binding="netTcpBinding"
bindingConfiguration="InformationService_netTcpBinding"
contract="BinaryAnalysis.MonoService.IInformationService" />
<endpoint address="net.tcp://localhost:9001/mex"
binding="mexTcpBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="InformationService_netTcpBinding" maxConnections="5">
<security mode="None">
</security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="InformationService_ServiceBehavior">
<serviceMetadata />
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
托管代码:
Type serviceType = typeof(InformationService);
serviceHost = new ServiceHost(serviceType);
serviceHost.Open();
最后一行失败。