我刚刚开始创建一些 WCF 服务,但我需要使它们向后兼容旧版(.NET 1.1 和 2.0)客户端应用程序。
我已经设法让服务为 3.0 和更高版本的客户端正确运行,但是当我使用 basicHttpBinding 端点(我认为这是我需要的兼容性所必需的)发布服务时,该服务会重构我的方法签名。例如
public bool MethodToReturnTrue(string seedValue);
在客户端应用程序中显示为
public void MethodToReturnTrue(string seedValue, out bool result, out bool MethodToReturnTrueResultSpecified);
我已经为我的自托管控制台应用程序尝试了 app.config 中我能想到的每个配置参数,但我似乎无法按预期实现此功能。我想这可能会导致我的期望存在缺陷,但令我感到惊讶的是,WCF 服务无法处理下层客户端的 bool 返回类型。
我当前的 app.config 看起来像这样。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service behaviorConfiguration="MyServiceTypeBehaviors" Name="MyCompany.Services.CentreService.CentreService">
<clear />
<endpoint address="http://localhost:8080/CSMEX" binding="basicHttpBinding" bindingConfiguration="" contract="IMetadataExchange" />
<endpoint address="http://localhost:8080/CentreService" binding="basicHttpBinding" bindingName="Compatible" name="basicEndpoint" contract="MyCompany.Services.CentreService.ICentreService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors" >
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
有人可以建议吗?