我在 Web 应用程序中有一系列 svc 文件,它们都运行良好,但我需要在将 aspNetCompatibilityEnabled 设置为 true 的情况下运行,现在出现以下异常
System.ServiceModel.ServiceActivationException:无法激活请求的服务“...”。有关详细信息,请参阅服务器的诊断跟踪日志。
它谈论的这些跟踪日志在哪里以及可能导致这种情况的原因是什么?
谢谢
我在 Web 应用程序中有一系列 svc 文件,它们都运行良好,但我需要在将 aspNetCompatibilityEnabled 设置为 true 的情况下运行,现在出现以下异常
System.ServiceModel.ServiceActivationException:无法激活请求的服务“...”。有关详细信息,请参阅服务器的诊断跟踪日志。
它谈论的这些跟踪日志在哪里以及可能导致这种情况的原因是什么?
谢谢
您可以通过将以下内容添加到 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查看日志文件
因此,当将 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
如果所有服务都允许,您可以使用此属性装饰一个基本服务类,以便默认情况下它被所有服务继承。