我有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不能用于通信,因为它已被中止。”
有谁知道为什么会这样?
提前致谢!
答案 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
在那里你可能会发现导致频道中止的确切错误。希望它有所帮助。