1

在模拟客户端到 Web 服务时,我需要调用它一次,还是需要调用它多次,每次我本质上都是调用客户端。

client.ClientCredentials.Windows.AllowedImpersonationLevel =
    System.Security.Principal.TokenImpersonationLevel.Impersonation;

在我的控制器过程中,我多次给我的客户打电话。我只调用一次。我似乎无法通过我网站的第一页(这个网站是一个 MVC2 网站)调用我的 WCF 网络服务。

这里有点困惑。如果你们能提供任何帮助,我将不胜感激。谢谢。

4

1 回答 1

1

每个代理(客户端通道)实例都允许模拟,因此如果您为不同的控制器/操作创建新的代理实例 (a client),则必须为每个代理实例配置它。创建实例后,您可以对该实例上的服务进行多次调用,它将正确模拟客户端。请注意,您应该为需要与 WCF 服务通信的每个 MVC 操作创建一个新的代理实例。

顺便提一句。您是否尝试模拟原始用户(访问您的 MVC 应用程序的用户)或运行 AppPool 托管 MVC 应用程序的用户帐户?如果第一种情况是您的场景,您可能会遇到问题,因为模拟仅限于单个网络跃点。这意味着可以在托管 MVC 应用程序(第一跳)的服务器上模拟用户,但如果 WCF 服务将在另一台服务器(第二跳)上,则模拟将无法在那里工作(因为单跳限制)。在这种情况下,您需要委托而不是模拟,并且委托需要正确配置的 Kerberos。

于 2011-08-12T21:18:25.450 回答