1

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

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

它谈论的这些跟踪日志在哪里以及可能导致这种情况的原因是什么?

谢谢

4

2 回答 2

1

您可以通过将以下内容添加到 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查看日志文件

于 2009-11-25T10:32:46.763 回答
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

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

于 2010-01-14T11:34:23.463 回答