繁体   English   中英

WCF:客户模拟

[英]WCF: Client Impersonation

我有一个控制台应用程序客户端,它与另一台服务器上的控制台应用程序托管的WCF服务进行通信。 它使用Windows身份验证和安全模式= message

在我更改服务以模拟客户端凭据之前,它工作正常。 我要做的更改是:
1.将<serviceAuthorization impersonateCallerForAllOperations="true" />到服务行为
2.将[OperationBehavior(Impersonation = ImpersonationOption.Required)]到我的方法签名中

然后,我托管我的服务,它正常运行,一切正常。

在我的客户中,我唯一要做的就是添加:

ChannelFactory<IService1> channel = new ChannelFactory<IService1>(binding, endPoint);
channel.Credentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;

然后,我运行我的客户端并得到错误:

服务器未提供有意义的回复; 这可能是由于合同不匹配,会话过早关闭或内部服务器错误引起的。

我还需要对客户端配置做些其他的事情吗?

您的服务器设置可能与合同不符。

在服务器端:

  • IIS是否设置为Windows身份验证?
  • web.config是否设置为Windows身份验证?
  • web.config是否设置为模拟= true

我的猜测是您错过了最后一个。

我怀疑wcf方法调用会在服务器端触发异常。 您是否具有捕获服务器端异常或有效负载的基础架构? 如果不是,则使用类似wcf跟踪日志记录的方式来记录流量。

这应该给您一个更有意义的错误。

如果您希望将其添加到您的问题中,希望我们可以找出导致问题的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM