我一直在 MSDN 文档中寻找答案,但没有找到确切的答案。
@ServiceHost 中的 Debug 属性是否会覆盖 Web.config 中的编译属性,还是 Web.config 的属性会覆盖所有属性?
谢谢。
我一直在 MSDN 文档中寻找答案,但没有找到确切的答案。
@ServiceHost 中的 Debug 属性是否会覆盖 Web.config 中的编译属性,还是 Web.config 的属性会覆盖所有属性?
谢谢。
根据:http://msdn.microsoft.com/en-us/library/aa702682.aspx
ASP.NET HTTP运行时处理ASP.NET请求,但不参与处理针对WCF服务的请求,即使这些服务托管在与ASP.NET内容相同的AppDomain中。相反,WCF服务模型拦截发送到WCF服务的消息,并通过WCF传输/通道堆栈将它们路由。
除非您在WCF的ASP.NET兼容性模式下运行服务。在这种情况下...
与默认的并排配置不同,在该配置中,WCF托管基础结构拦截WCF消息并将其路由出HTTP管道,以ASP.NET兼容性模式运行的WCF服务完全参与ASP.NET HTTP请求生命周期。在兼容性模式下,WCF服务使用IHttpHandler实现通过HTTP管道处理请求,类似于处理ASPX页面和ASMX Web服务的方式。
如果我们接受这个断言,那么我们知道应该尊重配置继承。
如果您想确保,您可以设置一个测试...
在ASP.NET兼容模式下运行的WCF服务可以访问HttpContext.Current及其相关状态。这意味着您可以查询IsDebuggingEnabled属性以查看是否处于调试模式。您还可以使用一些编译器指令,如#if DEBUG,以查看代码块是否被执行。
我非常想知道最终的裁决是什么。我认为这个问题的关键是这是否是在IIS中托管的WCF服务,以及它是否在AspCompatibility模式下运行。
web.config
设置对WCF没有任何影响。 - marc_s