当前位置:  开发笔记 > 编程语言 > 正文

无法调试WCF服务消息

如何解决《无法调试WCF服务消息》经验,为你挑选了4个好方法。

我有一个带有WCF服务的Visual Studio 2008解决方案和一个客户端.

当我运行我的客户端,并从我的服务中调用一个方法时,我收到一条消息"无法自动调试'Home.Service'.远程过程无法调试.这通常表示尚未在服务器上启用调试. "

我用Google搜索过,并尝试了以下内容.


   

已在客户端和服务器上的app.config中添加.

我还确保项目正在调试模式下编译.

还有什么可能导致这个消息?

编辑:根据反馈问题添加更多信息

它使用wsHttpBinding

我已经设定


我在用

var service = new HomeReference.HomeServiceClient();
service.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;

不幸的是,第一次在我的服务上调用方法时出现错误.我可以关闭消息框,应用程序继续工作.服务器上抛出的任何异常都没有传播回客户端(我认为它应该?)



1> Exist..:

我正在与这个完全相同的错误战斗超过一个小时而且很低,看到我重新启动VS2008并且它神奇地修复了自己.试一试,因为它可能会节省你一些时间.


也使用VS2010.

2> Samuel Jack..:

在我的情况下,问题结果是客户端和服务器上的安全设置不匹配.我正在使用这样的自定义绑定:


    
      
      
      
      
        
      
      
    
  

当我删除上面突出显示的安全元素时,"无法自动调试"消息的问题就消失了.

为了解决这个问题,我首先启用了WCF跟踪.这告诉我WCF正在抛出MessageSecurityException:

安全处理器无法在消息中找到安全标头.这可能是因为消息是不安全的故障,或者因为通信方之间存在绑定不匹配.如果为安全性配置服务且客户端未使用安全性,则会发生这种情况.

这指向我查看客户端的绑定设置.原来,我没有在我的自定义绑定中添加所需的安全元素.由于我是通过代码执行此操作,因此我需要以下内容(请注意第3行):

  var binding = new CustomBinding(
      binaryEncoding,
      SecurityBindingElement.CreateUserNameOverTransportBindingElement(),
      new HttpsTransportBindingElement { MaxReceivedMessageSize = MaxMessageSize, });

至于为什么Visual Studio显示该错误,我不知道 - 看起来我是一个错误.



3> Jorge Garcia..:

自动附加到服务具有以下限制:

该服务必须是您正在调试的Visual Studio解决方案的一部分.

该服务必须托管.它可能是网站项目(文件系统和HTTP),Web应用程序项目(文件系统和HTTP)或WCF服务库项目的一部分.WCF服务库项目可以是服务库或工作流服务库.

必须从WCF客户端调用该服务.

必须使用app.config或Web.config文件中的以下代码启用调试:


  

请参阅WCF调试的限制

此外,如果两个项目(客户端和服务)都在同一个解决方案中,但将在不同的进程中运行(例如,如果您使用本地IIS服务器进行开发,并且在不同的应用程序池上运行Web应用程序而不是服务它消耗),您可能需要为解决方案启用" 多个启动项目 "(在解决方案属性 - >启动项目上),以便调试器可以附加到两者.

为避免每次调试时都显示服务浏览器窗口,您可以将"启动操作"(在服务项目属性上)设置为"不要打开页面.等待来自外部应用程序的请求".

这来自个人经验,可能会帮助他人.



4> Dave..:

你可能会看到这个错误的另一个原因(我相信是我的情况)是你在64位Windows上运行.显然,Visual Studio没有任何x64调试器支持.

您可以通过更改使用应用程序的平台目标来解决此问题:

项目属性 - >构建 - >将"平台目标"更改为"x86".

不幸的是,这对我不起作用,因为我正试图在Windows Azure开发AppFabric中运行,这似乎要求所有内容都以64位模式运行!

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有