如何解决Windows Communication Foundation 上的 Python 客户端
最近我开始在 Visual Studio 上使用 Windows Communication Foundation,创建简单的服务和客户端来调用它们。现在我想使用 zeep 库在 Python 中创建一个客户端(您可以在此处找到资源 https://docs.python-zeep.org/en/master/)并调用在 Visual Studio 上用 C# 创建的简单服务,该服务输入两个整数并返回它们的总和。
以下是 App.config 文件中的 Visual Studio 代码,其中包含调用服务(托管在我电脑上的应用程序中)所需的所有地址:
<services>
<service name="WcfServiceLibrary1.CalculatorService">
<host>
<baseAddresses>
<add baseAddress = "http://localhost:8000/WcfServiceLibrary1/CalculatorService/" />
</baseAddresses>
</host>
<!-- Service Endpoints -->
<!-- Se non è completamente qualificato,l'indirizzo è relativo all'indirizzo di base fornito sopra -->
<endpoint address="" binding="wsDualHttpBinding" contract="WcfServiceLibrary1.ICalculator">
<!--
Durante la distribuzione è necessario rimuovere o sostituire l'elemento Identity seguente in modo
che rispecchi l'identità con cui viene eseguito il servizio distribuito. Se viene rimosso,WCF dedurrà
automaticamente un'identità appropriata.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<!-- Metadata Endpoints -->
<!-- L'endpoint di scambio metadati viene utilizzato dal servizio per offrire una migliore visualizzazione ai client. -->
<!-- L'endpoint non utilizza un'associazione protetta e deve essere protetto o rimosso prima della distribuzione -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
现在我刚刚用库 zeep 创建了一个小的 python 代码来调用服务:
import zeep
from zeep import Client
print("Connectin to service...")
wsdl = 'http://localhost:8000/WcfServiceLibrary1/CalculatorService/'
client = zeep.Client(wsdl)
print("Connected to service!")
result = client.Add(3,4)
print(client_admin)
客户端成功连接到服务,但是当我运行 python 代码时它返回
正在连接服务...
连接到服务!
回溯(最近一次调用最后一次):
文件“C:\Users\andre\AppData\Local\Programs\Python\Python37-32\Test_zeep.py”,第 8 行,
结果 = client.Add(3,4)
AttributeError: 'Client' 对象没有属性 'Add'
你有什么想法吗?为什么我的客户无法“识别”我的服务中存在的方法 Add(n1,n2)
?
如果我用 Visual Studio 创建一个 C# 客户端并调用服务,它运行得很好,所以也许是服务的问题?
非常感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。