客户端无法在Win8上打开服务

时间:2014-11-06 11:39:09

标签: c# wcf

我使用WSHttpBinding for wcf app。当我尝试在Windows 8.1(而不是Pro)上运行客户端时,我遇到了问题。每次运行Service.Open()

时应用程序都会崩溃

绑定配置:

WSHttpBinding binding = new WSHttpBinding();
binding.MaxReceivedMessageSize = 524288; 
binding.ReliableSession.Enabled = true;
binding.MessageEncoding = WSMessageEncoding.Text;
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;

对于其他操作系统,它运行良好。

异常消息:从另一方收到了不安全或不正确的安全故障。请参阅内部FaultException以获取故障代码和详细信息。

内部异常:安全验证错误消息。

1 个答案:

答案 0 :(得分:1)

  

Metro应用程序(win 8)支持WCF绑定:

     
      
  • BasicHttpBinding
  •   
  • NetTcpBinding
  •   
  • NetHttpBinding
  •   
  • CustomBinding
  •   
     

不支持WSHttpBinding

在win 8.1 win WSHttpBinding 确实有效并且应该使用,因为Microsoft已经增强了8.1 / 2012 R2中LSAS的安全性,并且BasicHttpBinding应该失败,因为它不再支持发送用户通过网络识别身份信息。

我猜您正在使用 WSHttpBinding 相同的方式 - 您想使用用户名/密码并通过网络发送它们。

你的案子应该是:Message Security with a User Name Client enter image description here

我完全不知道问题是什么,但似乎是信任问题。您的错误会被抛出,因为验证时安全验证失败

如果该计划适用于 win 8.1 pro 而非赢得8.1

  • 并使用用户名+证书验证然后重新安装证书
  • 并使用用户名+密码进行验证,然后检查域用户是否存在以及是否尝试连接到正确的域。

除此之外我会有一些侥幸的机会:

  • 证书未退出
  • 证书没有所需的权限
  • 证书基于其他一些无效,已卸载,已过期或...
  • 的证书
  • 证书或其基本证书使用不受支持的算法