我面临着一个奇怪的问题。
我有一个调用一个外部wcf服务的WCF库。我能够在测试客户端看到预期的结果。
但是我必须在IIS中托管这个WCF库,因为我必须使用一个wcf服务。 我将Wcflibrary dll引用到服务中,但在为外部wcf服务创建对象时遇到以下错误。
类型' System.InvalidOperationException'的例外情况发生在 System.ServiceModel.dll但未在用户代码中处理
其他信息:无法找到默认端点元素 参考合同' SMSAgent.SMSGatewayPort'在ServiceModel中 客户端配置部分。这可能是因为没有配置 找到了您的应用程序的文件,或者因为没有端点元素 匹配此合同可以在客户端元素中找到。
任何人都可以建议。这种情况有什么问题吗?
答案 0 :(得分:1)
没有技术原因可以让您无法从其他WCF服务调用WCF服务。您可以根据需要将多个服务呼叫链接在一起。
让我们拨打您的呼叫服务ServiceA和外部服务ServiceB。
您收到的错误是说ServiceA中的客户端配置存在问题。这意味着告诉WCF如何构建从ServiceA到ServiceB的客户端通道的代码丢失或无效。
现在,对于您要呼叫的每项服务,您需要在<system.serviceModel/>
配置的endpoint部分内定义client。您的端点定义必须指定:
或者,您可能需要包含service identity规范,具体取决于您呼叫的服务是否需要身份验证。
例如:
<client>
<endpoint name="MyExternalEndpoint"
address="http://externalservice.com"
binding="wsHttpBinding"
contract="ExternalService.IServiceContract" >
<identity>
<dns value="externalservice.com" />
</identity>
</endpoint>
</client>