从WCF使用Web服务

时间:2010-12-02 10:21:36

标签: wcf web-services

我已经创建了一个WCF服务,现在这个WCF服务必须调用一个Web服务。我正在做的是在WCF中添加Web服务的服务引用并调用我想要使用的Web服务的方法。

如下所示:

CalcWebReference.CalculatorSoapClient fct = 
    new CalcWebReference.CalculatorSoapClient();
int rq = fct.Add(q, r); 
return rq;

现在这个方法,当我试图从客户端调用时,它给出了以下错误

  

服务器无法处理   请求由于内部错误。对于   有关错误的更多信息,   要么打开   IncludeExceptionDetailInFaults(或者   来自ServiceBehaviorAttribute或来自   配置   行为)在服务器上   将异常信息发回   客户端,或按照开启跟踪   Microsoft .NET Framework 3.0 SDK   记录并检查服务器   跟踪日志。

谢谢我做了你说的但现在我收到以下错误“无法在ServiceModel客户端配置部分找到引用合同'CalcWebReference.CalculatorSoap'的默认端点元素。这可能是因为找不到应用程序的配置文件,或者因为在客户端元素中找不到与此契约匹配的端点元素。“

现在我需要在WCF服务或Web服务中提供一些端点以从Web服务获取该功能,如果是,那么我该如何给它。

请帮忙。

您好,

CalcWebReference.CalculatorSoapClient正在攻击Web服务而不是WCF。 下面给出了用WCF编写的代码(示例代码),它调用了Web服务: -

CalcWebReference.CalculatorSoapClient fct = new CalcWebReference.CalculatorSoapClient();

            int rq = fct.Add(12, 10);

            return rq;

我不是正确的语法,还是我需要做的其他事情呢?

1 个答案:

答案 0 :(得分:2)

这是通用WCF“发生了一些不好的事”错误消息。这不会有太大帮助。

的方法:

  • 确保您正在调用的Web服务自行运行 - 否则请修复它!

  • 通过在WCF服务中包含错误详细信息(在错误消息中描述)启用详细错误信息(在DEV环境中执行此操作!从未在生产中...)

  • 尝试在Visual Studio中启动WCF服务并调试正在发生的事情

为了启用详细的错误报告,您需要将此部分添加到WCF服务的配置中:

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

您可能已经配置了服务行为 - 在这种情况下,只需将<serviceDebug>标记添加到您的服务行为中。

如果您还没有服务配置 - 您还需要确保您的服务实际使用该服务配置:

<service name="YourServiceNameHere" 
         behaviorConfiguration="DebugBehavior">

确保behaviorConfiguration=标记上包含<service>属性,并确保引用该定义的服务行为(通过指定其<behavior name="..." >属性)。

完成上述操作后,您的错误应该会为您提供更多信息 - 您应该在异常时获得一个.InnerException指向正确的方向。