【问题标题】:Svc aspNetCompatibilityEnabled="true" is causing ServiceActivationExceptionSvc aspNetCompatibilityEnabled="true" 导致 ServiceActivationException
【发布时间】:2009-11-25 10:28:37
【问题描述】:

我在 Web 应用程序中有一系列 svc 文件,它们都运行良好,但我需要在将 aspNetCompatibilityEnabled 设置为 true 的情况下运行,现在出现以下异常

System.ServiceModel.ServiceActivationException:请求的服务“...”无法激活。有关详细信息,请参阅服务器的诊断跟踪日志。

它谈论的这些跟踪日志在哪里?是什么原因造成的?

谢谢

【问题讨论】:

    标签: web-services svc


    【解决方案1】:

    因此,当将 aspNetCompatibilityEnabled 设置为 true 时,您需要在几个地方应用更改。首先,我猜你已经在你的 web.config 文件中完成了它。其次,您需要通过使用 AspNetCompatibilityRequirements 属性装饰服务类来将更改应用于服务:

    C#

    [AspNetCompatibilityRequirements(
        RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class MySampleService
    {
    
    }
    

    VB

    <Activation.AspNetCompatibilityRequirements( _
    RequirementsMode:=Activation.AspNetCompatibilityRequirementsMode.Allowed)> _
    public class MySampleService 
    
    End Class
    

    如果所有服务都允许,您可以使用此属性装饰一个基本服务类,以便默认情况下它被所有服务继承。

    【讨论】:

      【解决方案2】:

      您可以通过将以下内容添加到您的 web.config 来激活广泛的日志记录信息:

      <system.diagnostics>
        <trace autoflush="true">
          <listeners>
          </listeners>
        </trace>
        <sources>
          <source name="System.ServiceModel"
                  switchValue="Information, ActivityTracing"
                  propagateActivity="true">
            <listeners>
              <add name="sdt"
                   type="System.Diagnostics.XmlWriterTraceListener"
                   initializeData= "WcfDetailTrace.txt" />
            </listeners>
          </source>
        </sources>
      </system.diagnostics>
      

      然后你可以使用SvcTraceViewer.exe查看日志文件

      【讨论】:

        猜你喜欢
        • 2011-11-14
        • 2012-09-12
        • 1970-01-01
        • 2012-07-05
        • 1970-01-01
        • 1970-01-01
        • 2018-11-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多