从WCF消费Web服务

3

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

下面是一个示例:

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

现在当我尝试从客户端调用此方法时,它会出现以下错误:
服务器由于内部错误而无法处理请求。要获取有关错误的更多信息,请在服务器上启用IncludeExceptionDetailInFaults(从ServiceBehaviorAttribute或configuration behavior中)以将异常信息发送回客户端,或根据Microsoft .NET Framework 3.0 SDK文档打开跟踪并检查服务器跟踪日志。
谢谢,我按照您说的做了,但现在我收到以下错误:“在ServiceModel客户端配置部分中找不到引用合同'CalcWebReference.CalculatorSoap'的默认终结点元素。这可能是因为没有找到应用程序的配置文件,或者因为在客户端元素中找不到与此合同匹配的终结点元素。”
那么现在我需要在WCF服务或Web服务中提供一些端点来从Web服务获取函数吗?如果是这样,我该如何给它们?
请帮忙。
嗨,
CalcWebReference.CalculatorSoapClient是指Web服务而不是WCF。 以下是调用Web服务的WCF中编写的代码(示例代码):
CalcWebReference.CalculatorSoapClient fct = new CalcWebReference.CalculatorSoapClient();

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

            return rq;

我是否没有正确使用语法,或者需要进行其他操作?

1个回答

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">

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

完成以上操作后,您的错误应该会给您更多信息 - 您的异常上肯定会得到一个.InnerException,可以指引您走向正确的方向。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接