使用WCF服务 - c#,VS2008和3.5 SP1

时间:2009-05-13 14:05:39

标签: c# visual-studio-2008 wcf

我正在尝试尝试使用WCF服务。我获得了svc文件的URL。 1.创建Windows表单应用程序 2.添加了对svc文件的服务引用 3.在表单加载事件期间我的代码中,我调用服务公开的方法

        ServiceReference1.SearchServiceClient search = new WindowsFormsApplication1.ServiceReference1.SearchServiceClient();
        var serviceResult = search.SearchByClientNumber("1");

我收到此错误 由于内部错误,服务器无法处理请求。有关错误的更多信息,请在服务器上启用IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute或配置行为)以将异常信息发送回客户端,或者根据Microsoft .NET Framework 3.0 SDK文档启用跟踪并检查服务器跟踪日志。“

我可以使用WCFTestClient调用该方法,但不能在我的应用程序中调用。

我的测试应用配置文件中是否需要进行一些更改?

有一节
<client>
        <endpoint address="http://somewhere.com/Service.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISearchService"
            contract="ServiceReference1.ISearchService" name="BasicHttpBinding_ISearchService" />
    </client>

2 个答案:

答案 0 :(得分:6)

当从服务中引发异常并且无法返回消息时,会发生此错误。

如果您有权访问服务代码,只需执行异常状态(“ ...启用IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute或来自配置行为)... ”)按顺序调试。

示例<serviceBehaviors>代码:

<serviceBehaviors>
    <behavior name="WcfService1.Service1Behavior">
        <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
</serviceBehaviors>

指定服务行为的示例:

<service name="WcfService1.Service1" behaviorConfiguration="WcfService1.Service1Behavior">

可以找到ServiceBehaviorAttribute.IncludeExceptionDetailInFaults属性的详细说明here

答案 1 :(得分:2)

如果您可以修改服务器上的配置文件,可以通过该服务获取异常信息。

您需要将服务行为部分添加到服务器的配置中。

<behaviors>
  <serviceBehaviors>
    <behavior name="serviceNameBehavior">
      <serviceDebug includeExceptionDetailInFaults="True" />
      </behavior>
  </serviceBehaviors>
</behaviors>

然后将服务与该行为相关联。

<service name="serviceName" behaviorConfiguration="serviceNameBehavior" ...