求,俩天拉.WCF wfhttpBing,[从另一方收到未进行安全处理或安全处理不正确的错误。 有关错误代码和详细信息,请参见内部 FaultException。
关于WCF wsHttpBinding,
[从另一方收到未进行安全处理或安全处理不正确的错误。有关错误代码和详细信息,请参见内部 FaultException.]
报出了这个错误.
相关设置如下:
config 配置如下:(XX.XX.X.11 为IP地址.为安全保密,X代替)
XX.XX.X.11 这个证书为不可信任机关发行的. 跟机器IP同名
把 XX.XX.X.11的服务器 换成 XX.XX.X.12 的服务器 ,证书换成 XX.XX.X.12
同样是不可信任机关发行的.跟机器IP同名,却可以
求帮助,2天拉..老板发火拉.
Service config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service
name="WCF.MyService"
behaviorConfiguration="MyServicebehavior">
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="MyServiceBinding"
contract="WCF.IMyService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="MyServiceBinding">
<security mode="Message">
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyServicebehavior">
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="None" />
</clientCertificate>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="WCF.CustomUserNameValidator,WCF" />
<serviceCertificate findValue="XX.XX.X.11" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
</serviceCredentials>
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<system.web>
<trust level="Full" />
<customErrors mode="Off"/>
</system.web>
</configuration>
client config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IMyService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="6553600"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" negotiateServiceCredential="true"
establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://XX.XX.X.11/WCF/WCF.svc" behaviorConfiguration="ClientCredentialsBehavior"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyService"
contract="ServiceReference.IMyService" name="WSHttpBinding_IMyService">
<identity>
<certificate encodedValue="AwAAAAEAAAAUAAAAMlGYZmpdAVEfVDTAkQwz8F8TdbwgAAAAAQAAABwFAAAwggUYMIIEAKADAgECAgoTHb4rAAAAAAACMA0GCSqGSIb3DQEBBQUAMB4xHDAaBgNVBAMTE2lDdWJlIFRlc3RTZXJ2ZXIgQ0EwHhcNMDgwODE1MDAyMTAzWhcNMDkwODE1MDAzMTAzWjBxMQswCQYDVQQGEwJKUDEOMAwGA1UECBMFVG9reW8xDTALBgNVBAcTBENIVU8xHDAaBgNVBAoTE2lDdWJlIFRlc3RTZXJ2ZXIgQ0ExEDAOBgNVBAsTB2lSZXN1bWUxEzARBgNVBAMTCjYwLjMyLjUuMTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCukkEjsgZII1hw8oSpiQDnS2wFOd4iP/zi3Fsw+08L8jNqfBhOtBxuPX35FF1jSN1LoN9A6fHHS+0navLXQkSBon13/MwkPwhT119AwQzBwC5RnosYXTTBsAZgRNQ3xlIztTO/OLXRFqHhZVHXdMV0sQYQAr1A4o1H2WKQBpPJlyD8OU84XJFV0XDRe5rmcPMcaTI4gnHj5F9IAU9Eh/1moJZqCGpxN2KqRqV1PrZqFKVTOhea+ovNrlySXUA4LOvOnzu3I+JHQjpvmpZlBFvyOzF6Itq0qQbzUNnNkk8tgF17Y2rXr9KWVedid/Xiom1Dgf4Vo6k+0JfDMEz4FUlXAgMBAAGjggIDMIIB/zAOBgNVHQ8BAf8EBAMCBPAwEwYDVR0lBAwwCgYIKwYBBQUHAwEweAYJKoZIhvcNAQkPBGswaTAOBggqhkiG9w0DAgICAIAwDgYIKoZIhvcNAwQCAgCAMAsGCWCGSAFlAwQBKjALBglghkgBZQMEAS0wCwYJYIZIAWUDBAECMAsGCWCGSAFlAwQBBTAHBgUrDgMCBzAKBggqhkiG9w0DBzAdBgNVHQ4EFgQUwCws9byniIJtyhUWTHyRe1GpvrUwHwYDVR0jBBgwFoAUDDmJb/epmHrtt1cWacmBdiziL/IweQYDVR0fBHIwcDBuoGygaoY1aHR0cDovL3Rlc3RzdnIvQ2VydEVucm9sbC9pQ3ViZSUyMFRlc3RTZXJ2ZXIlMjBDQS5jcmyGMWZpbGU6Ly9UZXN0U3ZyL0NlcnRFbnJvbGwvaUN1YmUgVGVzdFNlcnZlciBDQS5jcmwwgaIGCCsGAQUFBwEBBIGVMIGSMEkGCCsGAQUFBzAChj1odHRwOi8vdGVzdHN2ci9DZXJ0RW5yb2xsL1Rlc3RTdnJfaUN1YmUlMjBUZXN0U2VydmVyJTIwQ0EuY3J0MEUGCCsGAQUFBzAChjlmaWxlOi8vVGVzdFN2ci9DZXJ0RW5yb2xsL1Rlc3RTdnJfaUN1YmUgVGVzdFNlcnZlciBDQS5jcnQwDQYJKoZIhvcNAQEFBQADggEBAEyN8mYuuVnZzNkZFL7sTQ0ZljCST9+Se6B7/QYsYjMu3RgyLmievYvtDcTd8LVXXpMk8yBQ9JVCLql9RGLAgzSoQ+PWxosZjmfRqmazJ2MRvL5FNM5Cgvad1x7H0wFjrdFW/4U3Z+Byzk8LsjXUzSWfnyqzxwdnu0byu9yO4SltxlKD6sDmqqujRv3ii9vpuPmgtUO9FFKnmtbjlbuSNPILpscwajSD/RkCPAdRhcdO4ov/Uc6vP3TJrJ5UcX2GgpWcl577ZqOpO36IIo2p3fwplLMk5PL3lmvlahl0k60uCPrV9qWE7KdjoHvwLdH+/97V+D5j7F8wOHgX2yd+G2s=" />
</identity>
</endpoint>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="ClientCredentialsBehavior">
<clientCredentials>
<serviceCertificate>
<authentication certificateValidationMode="None" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
[解决办法]
请 确保 .11 机器 证书安装正确
<serviceCertificate findValue="XX.XX.X.11" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" />
在 Local Machine ,My 位置查找 SuvjectName 有xx.xx.x.11
另外,要说的, 是,一定要保证找到的证书是唯一的,如果 WCF找到2个证书,也会异常
还有一点, 你开发的时候,使用的.12 机器,还是 11的
建一个换成同一个证书,
因为WCF默认到处了公钥,在客户端,如果更换证书,也就无效了
或者也可以将证书导入公钥,然后再客户端使用
<certificate encodedValue="AwAAAAEAAAAUAA
[解决办法]
你看下.服务器跟客户端的时间.是不是在5分钟以内.不是的话,出错.
[解决办法]
<message clientCredentialType="UserName"/>
你的验证是使用的uesrName
确保你的客户端Proxy有设置UserName和Password