如果我从我的webservice调用一个方法,我得到一个System.ServiceModel.FaultException。 我称之为服务的两种方法,这里是两者的接口:
[OperationContract(IsOneWay = false, IsInitiating = true, IsTerminating = true)]
SaveResult CreateApprovalRequest(Guid requestId, Request request);
[OperationContract(IsOneWay = false, IsInitiating = true, IsTerminating = true)]
RequestSource GetRequestSource(Guid requestId, string source)
[OperationContract(IsOneWay = false, IsInitiating = true, IsTerminating = true)]
SaveResult CreateApprovalRequest(Guid requestId, Request request);
[OperationContract(IsOneWay = false, IsInitiating = true, IsTerminating = true)]
RequestSource GetRequestSource(Guid requestId, string source);
第一个方法调用成功,但第二个没有。
两种方法都可以使用相同的连接客户端对象,但每种方法都应该单独运行。所以我将它们标记为Initiating and Terminating.
这里有什么问题?
答案 0 :(得分:0)
如果您要在某处添加字典,那么错误发生的概率为99%,无论是否有意义。
您可以通过启用跟踪,复制错误和检查日志来了解正在发生的事情。跟踪提供了有关发生的事情的非常详细的逐步信息。
将此添加到服务器上的web.config,位于root配置元素下。当然,您可以使用您想要的任何路径和文件名。
<configuration>
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.ServiceModel" switchValue="All" propagateActivity="true">
<listeners>
<add name="traceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="D:\IISLogs\WCFLog\MyServerTrace.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
</configuration>
您可以在记事本或Visual Studio中查看日志,但Chapter of Hadley Wickham's book on S4 objects可能更容易。
要获得它,您需要下载Service Trace Viewer(您的版本可能需要更改)。安装SDK后,程序将位于以下路径:
C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ SvcTraceViewer.exe
您必须在WCF服务器上进行调试。调试中有一个规则,不要想。看&#34 ;.不要假设任何东西,但调试器会帮助你真正看到它。
如果你没有调试,那么你认为的dll与当前的代码一起可能不符合它。您可以使用Microsoft SDK来验证已编译的dll中的代码是否与您认为的完全相同。