繁体   English   中英

从WCF使用Web服务

[英]Consuming Web Service from WCF

我已经创建了一个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;

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

这是通用的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">

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

一旦你完成了这个,你的错误应该会给你更多的信息 - 你应该在你的异常上得到一个.InnerException ,它应该指向正确的方向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM