【问题标题】:SAP Webservice - Could not establish connection to network in C#SAP Webservice - 无法在 C# 中建立到网络的连接
【发布时间】:2017-09-15 13:07:45
【问题描述】:

我正在尝试使用 SAP Web 服务将 PDA 连接到 SAP。

我的 Visual Studio 版本是 Visual Studio 2008 专业版。 我跟着这个很棒的教程Create/Consume SAP Web service using SOAP Manager

我在我的 C# 项目中添加了 Web 服务,请查找以下代码。

        SAP_WSDL.z_web_service_name service = new PDA_APP.SAP_WSDL.z_web_service_name();
        SAP_WSDL.ZmmBatchPutawayFromPhp data = new PDA_APP.SAP_WSDL.ZmmBatchPutawayFromPhp();
        data.PBktxt = "Test";
        NetworkCredential cred = new NetworkCredential();
        cred.UserName = "XXXXX";
        cred.Password = "******";
        service.Credentials = cred;
        service.Proxy = new WebProxy("IP" , 1);
        SAP_WSDL.ZmmBatchPutawayFromPhpResponse response = new PDA_APP.SAP_WSDL.ZmmBatchPutawayFromPhpResponse();
        response = service.ZmmBatchPutawayFromPhp(data);

部署后出现异常(WebException 未处理),因为无法建立与网络的连接。

System.Net.WebException - {"Could not establish connection to network."}

堆栈跟踪:

"   at System.Net.HttpWebRequest.finishGetResponse()\r\n   at System.Net.HttpWebRequest.GetResponse()\r\n   at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)\r\n   at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)\r\n   at System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke(String methodName, Object[] parameters, WebClientAsyncResult asyncResult)\r\n   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)\r\n   at PDA_APP.SAP_WSDL.z_web_service_name.ZmmBatchPutawayFromPhp(ZmmBatchPutawayFromPhp ZmmBatchPutawayFromPhp1)\r\n   at PDA_APP.login.button2_Click(Object sender, EventArgs e)\r\n   at System.Windows.Forms.Control.OnClick(EventArgs e)\r\n   at System.Windows.Forms.Button.OnClick(EventArgs e)\r\n   at System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam)\r\n   at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)\r\n   at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)\r\n   at System.Windows.Forms.Application.Run(Form fm)\r\n   at PDA_APP.Program.Main()\r\n"

状态:System.Net.WebExceptionStatus.ConnectFailure

请帮我解决这个问题。

【问题讨论】:

  • 什么错误?请复制并粘贴带有完整堆栈跟踪的异常。
  • @FabrizioAccatino 错误信息已更新,请帮我解决这个问题。
  • 我不确定,但是您的网络服务在哪个会话中运行?作为会话 0 中的 SYSTEM 或会话 1 中的用户?我不熟悉Webservices,但是如果它们的行为类似于WindowsServices,则需要模拟成为用户才能访问网络。 stackoverflow.com/questions/46112248/…
  • 我猜这只是网络可见性问题。您是否验证过,从您收到错误的客户端,您可以到达 SAP 公开的目标 url?

标签: c# web-services soap visual-studio-2008 sap


【解决方案1】:

从您的客户端到 SAP SOAP 服务器似乎存在一些网络问题。以下是检查客户端和服务器之间连接性的一些提示和技巧。

  1. 使用 Ping 和 Tracert:这些实用程序可用于检查客户端是否可以看到服务器。首先尝试 ping,这只是基本检查服务器是否在客户端网络上可用。请记住,某些网络限制使用 ping。其次尝试tracert(跟踪路线)。此实用程序将向您显示客户端必须经过的 IP 列表才能获取服务器。

  2. 如果上述两个步骤都有效并且您可以确认服务器在网络上是可访问的,那么您可以尝试在服务所在的端口上从客户端到服务器的 telnet 会话。如果您可以连接,那么您没有网络问题如果您无法连接,则您的客户端和服务器之间可能存在防火墙问题。

总结:

尝试 ping 它。如果这成功了,那么 telnet 到它。如果您无法 ping 通,请尝试向服务器发送一个 tracert,如果这成功了,然后 telnet 到它。

【讨论】:

  • 这是一个很好的网络故障排除方法。设法丢弃网络问题,因为 ping、traceroute 和 telnet 都正常工作。
【解决方案2】:

我自己解决了这个问题,我已经激活了我在 SAP 的 soamanager 中使用 SICF T.Code 创建的 Web 服务,它解决了我的问题。感谢大家的努力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多