使用表单身份验证调用WCF服务

时间:2010-11-08 12:42:12

标签: wpf forms-authentication wcf

我有wpf应用程序,它使用表单身份验证调用wcf服务。 我在我的解决方案中添加了Service Reference,并在服务配置中选中了Generate asynchronous operations。

在后面的代码中,我创建了该引用的客户端, 比我在异步方法完成后将事件附加到火, 然后设置用户名和密码:

        client.ClientCredentials.UserName.UserName = txtUser.Text;
        client.ClientCredentials.UserName.Password = passbox.Password;
        client.IsAuthenticatedAsync(txtUser.Text, passbox.Password);
        client.Close();
在IsAuthenticatedCompletedEventArgs中我收到错误: “通信对象System.ServiceModel.Channels.HttpsChannelFactory + HttpsRequestChannel不能用于通信,因为它已被中止。”

有谁知道为什么会这样?

提前致谢!

1 个答案:

答案 0 :(得分:0)

说实话,我没有机会测试你的场景,但是这个错误是一个普遍的错误,说明在与服务通信时出现了问题(这个答案更多的是评论,但它很广泛,可以'适合)。您可以通过在web.config和app.config中<configuration>部分的末尾添加以下行来获取更多信息:

<system.diagnostics>
<trace autoflush="true" />
<sources>
  <source name="System.ServiceModel"
          switchValue="Information, ActivityTracing"
          propagateActivity="true">
    <listeners>
      <add name="sdt"
          type="System.Diagnostics.XmlWriterTraceListener"
          initializeData= "ServiceTestWCFTrace.svclog" />
    </listeners>
  </source>
</sources>

收到错误后,使用svc log viewer查看日志:C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcTraceViewer.exe 在那里你可能会发现导致频道中止的确切错误。希望它有所帮助。