【问题标题】:Clear Username Binding (Unable to automaticalli debug wcf service)清除用户名绑定(无法自动调试 wcf 服务)
【发布时间】:2013-03-06 07:59:45
【问题描述】:

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

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

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

附:仅当我使用 ClearUserNameBinding 时才会出现此错误。如果我使用例如 wsHttpBinding 它就完美了。当然,我在我的配置文件中打开了<system.web> <compilation debug="true" />

提前致谢!

【问题讨论】:

    标签: c# .net wcf


    【解决方案1】:

    在 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())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      相关资源
      最近更新 更多