我一直在尝试创建一个简单的服务,以允许通过 WCF 将消息登录到远程服务器,在我将服务发布到使用 HTTPS 的实时环境之前,这一切都运行良好。
经过一番搜索,我发现我需要更改我的 ServiceConfig 以适应不同的协议。我结合使用了这两篇文章:
对我的配置进行了建议的更改后,我似乎处于可以将实时服务添加为 VS2010 中的 WCF 引用的状态,但是当我使用 IE 浏览到服务或 mex 地址时,我一直收到“HTTP 400 错误请求”错误。
在使用该服务方面,我似乎可以成功运行它,但 mex 只是不想通过 IE 工作。
服务本身托管在运行 IIS 6.0 且没有负载平衡的 Windows Server 2003 R2 Standard Edition SP2 上。
在这一点上我真的很茫然,我花了 3-4 天的时间来解决这个问题,但我似乎无法取得任何进展。因此,任何帮助将不胜感激。
请参阅下面有问题的服务器服务配置:
<system.serviceModel>
<services>
<service name="mycorp.Callback.SecPayService" behaviorConfiguration="mycorp.Callback.SecPayServiceBehavior">
<endpoint address="https://myserver.co.uk/SecPay/SecPayService.svc"
binding="wsHttpBinding" bindingConfiguration="TransportBinding"
contract="mycorp.Callback.ISecPayService"/>
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="mycorp.Callback.SecPayServiceBehavior">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="TransportBinding">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>