2

最近我读了一篇关于使用用户名和密码身份验证的自己的 WCF 绑定的文章。

这是一篇文章:http ://webservices20.blogspot.ru/2008/11/introducing-wcf-clearusernamebinding.html 。

这个项目“清除用户名绑定”运行良好。但对我来说问题是我希望 WCF 服务器托管在 WCF 服务主机中。(就像您在 VS 中从模板创建任何服务库一样,它将在 WCF 服务主机中运行)。我已经完成了接下来的事情。我创建了一个新项目(服务库),只需将您的服务和合同复制到这个新项目中。然后我复制了该app.config system.serviceModel部分并添加了引用ClearUserNameBinding项目和 MyUserNameValidator。就是这样 接下来,我运行客户端应用程序。一切都很好。WCF 服务主机已经启动,客户端应用程序按我的预期结束。但问题是,现在如果我在服务实现中的某处放置一个断点(让它位于 EchoString 函数的某处)并再次运行,我总是在 VS IDE 中收到一条消息“无法自动调试 WCFServiceLibrary”。我真的不知道如何处理这个错误以及如何摆脱它,因为我需要调试可供我使用。

PS 这个错误只在我使用 ClearUserNameBinding 时出现。如果我使用例如 wsHttpBinding 它就完美了。当然我已经<system.web> <compilation debug="true" /> 在我的配置文件中打开了

提前致谢!

4

1 回答 1

0

在 Visual Studio 中,在客户端的第一行放置一个断点并附加到进程“WCF 服务主机”。然后你可以调试到它的断点。不确定如何在不附加到另一个进程的情况下执行此操作。

您也可以尝试不将 CUB 用作单独的绑定,而是将其用作自定义绑定。您将需要从代码创建自定义绑定。伪代码:

var b = new CustomBinding();
b.elements.add(new TextEncodingElement())
b.elements.add(new SecurityElement() {SecurityMode="UsernameOverTransport"})
b.elements.add(new AutoSecuredHttpTransportElement())
于 2013-04-23T15:44:46.870 回答