最近我读过一篇关于自己用户名和密码验证的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”。我真的不知道如何处理这个错误以及如何摆脱它,因为我需要调试才能为我提供。
P.S。仅当我使用ClearUserNameBinding时才会出现此错误。如果我使用例如wsHttpBinding它完美无缺。当然,我在配置文件中打开了<system.web> <compilation debug="true" />
提前致谢!
答案 0 :(得分:0)
在visual studio中,在客户端的第一行放置一个断点并附加到进程“wcf service host”。然后你可以调试它的断点。不知道如何做到这一点没有附加到另一个过程。
此外,您可以尝试不将CUB用作单独的绑定,而是将其用作自定义绑定。您需要从代码创建自定义绑定。伪代码:
var b = new CustomBinding();
b.elements.add(new TextEncodingElement())
b.elements.add(new SecurityElement() {SecurityMode="UsernameOverTransport"})
b.elements.add(new AutoSecuredHttpTransportElement())