Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 无法调试WCF服务消息_Visual Studio 2008_Wcf - Fatal编程技术网

Visual studio 2008 无法调试WCF服务消息

Visual studio 2008 无法调试WCF服务消息,visual-studio-2008,wcf,Visual Studio 2008,Wcf,我有一个VisualStudio2008解决方案,带有WCF服务和一个客户端 当我运行客户端并从我的服务调用一个方法时,我收到一条消息:“无法自动调试‘Home.service’。无法调试远程过程。这通常表示服务器上未启用调试。” 我在谷歌上搜索了一下,并尝试了以下方法 <system.web> <compilation debug="true" /> </system.web> 不幸的是,当我第一次调用服务上的方法时,错误就出现了。我可以关闭me

我有一个VisualStudio2008解决方案,带有WCF服务和一个客户端

当我运行客户端并从我的服务调用一个方法时,我收到一条消息:“无法自动调试‘Home.service’。无法调试远程过程。这通常表示服务器上未启用调试。”

我在谷歌上搜索了一下,并尝试了以下方法

<system.web>
   <compilation debug="true" />
</system.web>
不幸的是,当我第一次调用服务上的方法时,错误就出现了。我可以关闭messagebox,应用程序继续工作。在服务器上引发的任何异常都不会传播回客户端(我认为应该是这样的)

您尝试过吗

    <serviceBehaviors>

  <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
        </serviceBehaviors>

用于调试目的

编辑:没关系,我想我误解了这个问题,你试过了吗

    <serviceBehaviors>

  <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
        </serviceBehaviors>

用于调试目的


编辑:没关系,我想我误解了这个问题

在客户机中创建服务引用后添加这行代码

MyWCFService.IService _proxy = new MyWCFService.IService();
_proxy.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;

在客户端中创建服务引用后添加这行代码

MyWCFService.IService _proxy = new MyWCFService.IService();
_proxy.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;

我也遇到过类似的问题,结果是由于IIS站点/虚拟目录上未启用Windows身份验证

您是否已尝试将身份验证模式设置为“集成”而不是“匿名”?

我遇到了类似的问题,这是由于IIS站点/虚拟目录上未启用Windows身份验证造成的

您是否已尝试将身份验证模式设置为“集成”而不是“匿名”?

在我的例子中,问题是客户端和服务器上的安全设置不匹配。我使用的自定义绑定如下所示:

<customBinding>
    <binding name="AuthorisedBinaryHttpsBinding" receiveTimeout="00:03:00" sendTimeout="00:03:00">
      <!-- this next element caused the problem: -->
      <security authenticationMode="UserNameOverTransport">
      </security>
      <binaryMessageEncoding>
        <readerQuotas maxDepth="100" maxStringContentLength="1000000"
          maxArrayLength="655360000" />
      </binaryMessageEncoding>
      <httpsTransport />
    </binding>
  </customBinding>

至于Visual Studio为何显示该错误,我不知道-在我看来这是一个bug。

在我的案例中,问题是客户端和服务器上的安全设置不匹配。我使用的自定义绑定如下所示:

<customBinding>
    <binding name="AuthorisedBinaryHttpsBinding" receiveTimeout="00:03:00" sendTimeout="00:03:00">
      <!-- this next element caused the problem: -->
      <security authenticationMode="UserNameOverTransport">
      </security>
      <binaryMessageEncoding>
        <readerQuotas maxDepth="100" maxStringContentLength="1000000"
          maxArrayLength="655360000" />
      </binaryMessageEncoding>
      <httpsTransport />
    </binding>
  </customBinding>

至于VisualStudio为什么会显示出这个错误,我不知道——在我看来这是一个bug。

我与这个完全相同的错误斗争了一个多小时,结果我重启了VS2008,它奇迹般地修复了自己。尝试一下,因为它可能会节省您一些时间。

我与这个完全相同的错误进行了一个多小时的斗争,结果我重新启动了VS2008,它奇迹般地修复了自己。请尝试一下,因为它可能会节省您一些时间。

您可能会看到此错误的另一个原因(我相信我也是如此)是您在64位Windows中运行。显然VisualStudio没有任何x64调试器支持

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

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


不幸的是,这对我来说不起作用,因为我正在尝试在WindowsAzure开发AppFabric中运行,它似乎要求所有东西都在64位模式下运行

您可能会看到此错误的另一个原因(我相信我也是如此)是您在64位Windows中运行。显然VisualStudio没有任何x64调试器支持

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

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


不幸的是,这对我来说不起作用,因为我正在尝试在WindowsAzure开发AppFabric中运行,它似乎要求所有东西都在64位模式下运行

在web服务web.config中,确保编译调试设置为true。
那应该能解决你的问题

在web服务web.config中,确保编译调试设置为true。
那应该能解决你的问题

我也遇到了同样的问题。我在客户端和服务配置文件中都做了更改,如

编译调试设置为true


这对我很有效。

我也遇到了同样的问题。我在客户端和服务配置文件中都做了更改,如

编译调试设置为true


这对我很有效。

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

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

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

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

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

    <system.web>
      <compilation debug="true" />
    </system.web>
    
    
    

此外,如果两个项目(客户端和服务)位于同一个解决方案中,但将在不同的进程中运行(例如,如果您使用本地IIS服务器进行开发,并且在与其使用的服务不同的应用程序池上运行web应用程序),则可能需要启用解决方案的“多个启动项目”(在“解决方案属性->启动项目”上),以便调试器可以同时附加到这两个项目

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


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

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

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

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

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

  • 必须进行调试