【问题标题】:Is there a way to disable WCF Service debugging in VS 2010?有没有办法在 VS 2010 中禁用 WCF 服务调试?
【发布时间】:2026-01-28 21:45:03
【问题描述】:

我有一个 ASP.NET 网络表单应用程序,它通过我在 Visual Studio 2010 中使用添加服务引用命令创建的 WCF 服务代理来使用第三方服务。

我在单独的部分类定义中向生成的 Client 类添加了几个公共方法,以便即使我重新生成代理它们也能保持不变。这些方法是我其余代码调用的方法,而不是直接调用映射到 api 调用的代理方法。

我遇到的问题是当我需要调试我添加的方法时。当我在我创建的方法之一中放置断点,然后尝试单步执行或单步执行代码时,Visual Studio 会挂起一段时间,然后返回并显示以下错误:

无法自动进入服务器。连接到服务器计算机“[服务地址]”失败。调试器无法连接到远程计算机。这可能是因为远程计算机不存在或防火墙可能阻止与远程计算机的通信。请参阅帮助以获得帮助。

发生此错误后,Visual Studio 会自动退出我正在调试的方法,从而阻止我调试客户端代码。

Visual Studio 正在尝试连接到远程第 3 方服务以尝试调试它。但是,我无法控制此服务,也永远无法让它执行此操作。

有什么方法可以告诉 Visual Studio 不要尝试调试这个远程服务而只调试客户端代码?

更新

我正在查看生成的客户端的代码,我看到它应用了 DebuggerStepThroughAttribute,所以我想这解释了我遇到的问题,它不允许我进入我的代码,但它仍然没有'不能解决阻止 VS 尝试调试远程服务的更大问题。

【问题讨论】:

  • 不是一个好的答案,但您可能必须回滚然后手动创建代理和连接。或者只是复制为您制作的内容,然后稍后手动添加。 “添加服务引用”以及它对解决方案的作用很糟糕。

标签: wcf-client


【解决方案1】:

我认为 Visual Studio 现在为 WCF 库项目内置了 WCF 服务宿主行为。据我所知,关闭它的唯一方法是将项目类型更改回普通库。您可以通过手动编辑 .csproj 来做到这一点:从 <ProjectTypeGuids> 中删除 {349c5851-65df-11da-9384-00065b846f21}(和相关的分号)。

【讨论】:

    最近更新 更多