WCF:在 VS2010 中自动禁用 MEX 从 DEBUG 到 RELEASE 构建?

Posted

技术标签:

【中文标题】WCF:在 VS2010 中自动禁用 MEX 从 DEBUG 到 RELEASE 构建?【英文标题】:WCF: Automatically disable MEX from DEBUG to RELEASE builds in VS2010? 【发布时间】:2010-11-09 05:44:52 【问题描述】:

我的代码可以在安装我们产品的 RELEASE 版本时自动禁止故障信息流向客户端。我想知道是否有一种聪明的方法可以让 MEX 元数据在我们的 RELEASE 版本中不可用。这是我为自动禁用故障信息所做的工作,我在以下链接中找到了这些信息:http://codeidol.com/csharp/wcf/Faults/Fault-Contracts/。

    // Enables exceptions to flow to clients when built for debugging; 
    // Otherwise, no details go to client.
    public static class DebugHelper
    
        public const bool IncludeExceptionDetailInFaults =
#if DEBUG
 true;
#else
      false;
#endif
    

    // This service is singleton.  If other calls arrive while one is in progress, 
    // they are queued.
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, 
                     ConcurrencyMode = ConcurrencyMode.Single, 
                     IncludeExceptionDetailInFaults = DebugHelper.IncludeExceptionDetailInFaults)]
    public class OurService : IOurService

【问题讨论】:

【参考方案1】:

如果您使用配置文件配置 WCF 服务,那么您可能只有两个单独的配置 - 一个用于调试,一个用于不带 MEX 端点的发布。

【讨论】:

【参考方案2】:

您应该在代码中添加 mex 端点,然后将其编译掉

【讨论】:

啊……我喜欢你的两个想法,但是这个很吸引人,因为我可以使用条件编译,而不必维护两个配置文件。这是要走的路!谢谢马克和普里特的帮助! :) -- 迈克

以上是关于WCF:在 VS2010 中自动禁用 MEX 从 DEBUG 到 RELEASE 构建?的主要内容,如果未能解决你的问题,请参考以下文章

将 WCF 项目从 VS 2008 移植到 2010 时出错

在 VS 2010 中更新 WCF 服务对 WebService 问题的引用

VS2010及2013设置

在 VS 2010 中禁用 WPF 设计器?

在VS2008和VS2010中禁用Visual Assist X

VS2010:从 .NET 项目中添加对 Silverlight 项目的项目引用的警告