WCF异常跟踪调试

以前服务器端有异常,老是提示

The server was unable to process the request due to an internal error. For more information about the error,
either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or 
from the <serviceDebug> configuration behavior) on the server in order to send the exception information 
back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and 
inspect the server trace logs.

这个等于没有说,一方面这是为了安全,但是在开发阶段,这个就太痛苦了。

如下的文件

  <behavior name="calculatorServiceBehavior">
                  <serviceDebug includeExceptionDetailInFaults="true" />
          </behavior>

添加serviceDebug ,可以使异常抛到客户端来,直接查看就可以了。

服务器端有个异常折腾了我一天,原来是文件找不到,要是能看到这个技巧,几分种就搞定了。

另外,还有一个技巧,直接用Attach To Process 附加进程的办法,把服务器进程加进来,也可以调试,不知道怎么的,今天的自己真是太聪明了,这个办法也能想到。

大部分工作的时候,精力集中,大脑缺氧,反应迟钝,看来还是要好好休息才行。

 

工作累了就要好好休息,把工作时间缩短,提高效率。但是,老板在你身边,你还是要老实的干活,没法缩短工作时间。要是在家里,估计8个小时的活,4个小时可以搞定,

### 解决 Visual Studio 中无法进入 WCF 服务调试的问题 当遇到在Visual Studio中设置的断点未能命中的情况时,这通常涉及到配置和服务启动方式的选择。对于自承载的服务而言,即那些不依赖于IIS、WCF服务宿主或是ASP.NET开发服务器来运行的情况[^1],可以采取特定的方法来进行有效的调试。 #### 自承载服务的调试方法 为了能够成功地让断点生效并顺利进行调试工作,建议按照如下方式进行操作: - **确保正确的构建配置**:确认当前使用的解决方案平台(如x86/x64)与目标框架版本相匹配,并且处于`Debug`模式下编译程序。 - **启用Just My Code选项**:前往工具->选项->调试->常规,取消选中“仅限我的代码 (Just My Code)”这一项。这样做可以让调试器更全面地跟踪整个调用链路,而不仅仅局限于用户定义的部分。 - 如果已经有一个独立的应用程序或控制台应用作为宿主启动了该WCF服务,则可以通过选择菜单栏上的“调试(Debug)->附加到进程(Attach to Process...)”功能找到对应的服务进程名称(例如svc.exe),并将调试器附加上去[^3]。 - **直接通过Visual Studio启动服务**:另一种更为简便的做法是在同一份解决方案内同时包含客户端项目和服务端实现文件夹下的`.exe`可执行文件或者Windows服务安装包。这样可以在按下F5键之后自动开启服务监听状态的同时也激活了内置的调试机制。 针对提到的具体场景——即在同一解方案中有两个关联紧密的不同模块(比如前端UI层和后台业务逻辑处理单元),并且希望能够在发起远程过程调用(RPC)期间同步触发相应的中断指令,除了上述措施外还需要注意以下几点: - 验证PDB符号文件的存在性和路径正确性; - 尝试清理重建工程以排除潜在缓存干扰因素的影响; - 使用全局异常处理器捕获可能发生的未经处理错误以便进一步分析原因所在。 ```csharp // 示例:简单展示如何在一个类库项目里暴露可供外部访问的操作契约接口 using System.ServiceModel; namespace SampleServiceLibrary { [ServiceContract] public interface ISampleService { [OperationContract] string GetData(int value); // 更多操作... } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值