首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSAECONNREFUSED:通过PyRFC建立连接时拒绝连接

WSAECONNREFUSED:通过PyRFC建立连接时拒绝连接
EN

Stack Overflow用户
提问于 2018-11-14 05:06:08
回答 2查看 2.1K关注 0票数 0

我选择了PyRFC库来完成从Python连接到SAP的任务。除了连接之外,一切都很正常。代码在连接到SAP时会停止并显示错误消息。

代码语言:javascript
复制
import pyrfc
def get_connection(connmeta):
print('Connecting ...', connmeta['ashost'])
return Connection(**connmeta)

TEST = { 'user' : 'XX',
'passwd' : 'XX',
'ashost' : 'XXX.XXX.XXX.XXX',
'sysnr' : '00',
'client' : '400',
'lang' : 'EN' }

conn = get_connection(TEST)

它抛出:

错误消息pyrfc._exception.CommunicationError: RFC_COMMUNICATION_FAILURE (rc=1):key=RFC_COMMUNICATION_FAILURE,message= 用Unicode在本地主机XXX-XXXXXXX上定位CPIC (TCP/IP) 未到达错误合作伙伴“XXX.XXX:3300” 时间11月13日16:33:59 2018 第721版 组件NI (网络接口) 第40版 RC -10 模块nixxi.cpp 第3283项 DETAIL NiPConnect2: XXX.XXX:3300 系统呼叫连接 ERRNO 10061 ERRNO文本WSAECONNREFUSED:连接被拒绝 计数器2 MSG: class=,type=,number=,v1-4:=;;

问题似乎在于服务器的防火墙。我在互联网上搜索了大部分这样的答案,包括SAP的社区。

然后,我告诉SAP的IP网络端口,并得到超时。似乎关闭端口会导致连接失败。

但在使用Python之前,我使用VBA从SAP中获取数据。VBA中的配置几乎与Python中的配置相同。

代码语言:javascript
复制
Set R3 = CreateObject("SAP.Functions")  
    R3.Connection.System = "PRT"  
    R3.Connection.ApplicationServer = "XXX.XX.XX.XX" 
    R3.Connection.Client = "400" 
    R3.Connection.SystemNumber = "00" 
    R3.Connection.User = "XX"
    R3.Connection.Password = "XX" 
    R3.Connection.Language = "EN" 
    R3.Connection.Codepage = "1100"

retcd = R3.Connection.Logon(1, True) 
If retcd <> True Then  
   MsgBox "Logon failure" 
Else 
   MsgBox "Logon success" 
End If

它工作得很好,但效率很低,这就是为什么我选择Python作为解决方法的原因。有人知道为什么VBA成功了,但是Python失败了吗?

EN

回答 2

Stack Overflow用户

发布于 2019-09-17 14:44:22

“连接拒绝”是标准的TCP/IP错误消息,这意味着端口号不正确。再次检查,您的后端系统的SystemNumber是否真的是"00“。

票数 1
EN

Stack Overflow用户

发布于 2018-11-19 11:21:30

这条消息似乎是一个网络问题:

连接被拒绝

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53293504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档