我已经使用自定义绑定创建了支持Silverlight的WCF服务,以根据指南传输binaryMessages。 我可以通过添加httpsTransport条目并在我的本地IIS实例上安装Verisign CA,从电话模拟器通过https调用此服务。到目前为止一切都很好。
我将绑定的安全性条目和服务凭据添加到行为中以使用自定义类。当通过客户端代理提交有效的用户名/密码对时,此服务和自定义类可以在单元测试中正常工作。
当我从WP7模拟器中执行相同操作时,我收到“MessageSecurityException”。
我的服务配置如下。有关如何调试的任何想法或指示?感谢...
<system.serviceModel>
<bindings>
<customBinding>
<binding name="SimpleService.Simple.customBinding0">
<security authenticationMode="UserNameOverTransport"/>
<binaryMessageEncoding />
<httpsTransport/>
</binding>
</customBinding>
</bindings>
<services>
<service name="SimpleService.Simple">
<endpoint address="" binding="customBinding" bindingConfiguration="SimpleService.Simple.customBinding0"
contract="SimpleService.Simple" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="SimpleService.MyValidator,SimpleService"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
再次感谢..
答案 0 :(得分:1)
感谢我的同事Yossi Dahan,我能够使用Visual Studio中的WCF服务配置编辑器将跟踪添加到我的Web服务配置中,然后使用Microsoft服务跟踪查看器来分析日志。 / p>
这表明请求已通过服务器,但自定义验证程序正在抛出异常。
通过从VS内部附加到IIS,我能够调试自定义验证器以发现(令人尴尬)我的WP7测试传递了无效的用户凭据 - 所以一切都正常工作!
获得的经验 - 在使用新技术时获得正确的跟踪/工具。