当我尝试从webservice加载方法时,我收到一个错误:
“由于内部错误,服务器无法处理请求。有关错误的更多信息,请在服务器上启用IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute或配置行为)以便发回异常信息到客户端,或根据Microsoft .NET Framework SDK文档打开跟踪并检查服务器跟踪日志“
这是我的app.config端点def:
<services>
<service name="Service" behaviorConfiguration="debug">
</services>
<client>
<endpoint name="Service" address="net.tcp://localhost:12708/" binding="netTcpBinding" bindingConfiguration="netTcp" contract="path.IService" >
<identity>
<servicePrincipalName />
</identity>
</endpoint>
</client>
<serviceBehaviors>
<behavior name="debug">
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
如果我声明了serviceBehaviors,我看不到更多信息事件。 有人可以告诉我如何才能看到有关此错误的更多详细信息?
答案 0 :(得分:6)
错误的信息很清楚。出于安全原因,服务器配置为隐藏内部错误。这是根据fault handling in WCF MSDN post的默认行为。
我看到两个选项,都假设你有权访问服务器:
启用显示错误详细信息 请参阅fault handling in WCF MSDN post。它提供了有关如何设置配置的详细信息,请参阅“在发生异常时提供附加信息”部分。
使用实际断点进行调试 这会更好。在我看来,没有错误信息实际上可以为您提供调试会话的见解。
希望我帮忙!
答案 1 :(得分:1)
在本地运行时,您可以使用Tools
- &gt;附加服务来调试服务。 Attach to Process
。
在可用流程列表中,根据您为服务配置的内容,查找流程W3wp.exe
,其中包含Managed (...) x64
或Managed (...) x86
。
点击Attatch
,在您的服务中设置几个断点,然后尝试在您的网络浏览器中再次访问它,它们应该被点击。
请注意,您需要在调试模式下发布WS才能使其正常工作。
答案 2 :(得分:1)
解决方案:我的服务尚未启动。 因为我们在本地运行服务,所以我需要打开所需的解决方案并通过RG本地运行服务 - &gt;创建新实例。
我怎么知道这件事?我的日志文件存储在c:/ temp中。 在这个位置,出现了一个新的日志文件,在那里我发现了有关我的错误的更多信息。 (我一直以为我的错误消息的详细信息会进入我的基本日志文件,但我没想到会有另一个日志文件。
所以,原因:网络服务无法正常工作 解决方案:启动服务localy:Rb - &gt;创造新的服务。
答案 3 :(得分:0)
您应该在配置文件中添加诊断信息:
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="All"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "D:\AppLogs\Traces.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>