我在Web应用程序中有一系列svc文件,它们都运行正常,但我需要运行aspNetCompatibilityEnabled设置为true,现在我得到以下异常
System.ServiceModel.ServiceActivationException:无法激活所请求的服务“...”。有关详细信息,请参阅服务器的诊断跟踪日志。
它谈论的这些跟踪日志在哪里以及可能导致这种情况发生的原因?
由于
答案 0 :(得分: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查看日志文件
答案 1 :(得分: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
如果所有服务都允许,您可以使用此属性修饰基本服务类,因此默认情况下它将由所有服务继承。