【问题标题】:delphi windows service can't download file from internetdelphi windows服务无法从互联网下载文件
【发布时间】:2010-05-09 20:48:58
【问题描述】:

我有一个用 delphi 编写的 windows 服务,该服务将用于从我的网站下载文件,但它无法下载文件,它也没有抛出任何异常,我也更改了目标路径和文件下载但结果是一样的,我的防火墙也关闭了,我的项目在我测试的另一台PC上正常工作,在Windows应用程序中我的功能也正常工作,那么应该是什么问题? 谢谢你的时间

【问题讨论】:

  • 当您说“无法下载文件”时,如果它不抛出异常,您如何验证这一点?它只是挂起吗?
  • 使用 try except 块...,在 excpet 中尝试将异常消息写入文本文件
  • 这个问题的描述哪里去了?

标签: windows delphi service


【解决方案1】:

正常情况下,LocalSystem 下的服务无法访问网络资源。 你说它适用于另一台电脑,我无法解释为什么。 您说它可以在另一个应用程序中运行,是的,因为应用程序是使用当前帐户执行的。

解决办法可能是在Network Serviceaccount 下执行服务。 检查它是否能解决问题!

【讨论】:

    【解决方案2】:

    如果未应用其他访问权限,服务将无法访问网络资源,例如通过 UNC 路径。但是服务可以不受限制地使用 TCP 和 UDP 套接字。我编写了几个通过 TCP/IP 连接到远程服务器的服务,它们可以正常工作,无需额外的配置或访问权限。

    【讨论】:

      【解决方案3】:

      您可以使用Wireshark 之类的工具来捕获和检查 HTTP 会话,并了解这是否是传输级别的问题或其他问题。

      【讨论】:

        【解决方案4】:

        检查运行服务的用户的访问权限。

        默认为 LocalSystem,可能不允许访问远程网络(即 Internet)。尝试在您登录的同一用户下运行它。

        希望对你有帮助

        【讨论】:

        • 谢谢,但我说它可以在本地系统下的另一台电脑上正常工作
        • 我的电脑使用共享连接访问互联网
        • 本地系统下使用c#服务下载文件时出现异常:异常信息:无法连接远程服务器connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception&异常)
        • innerExeption :System.Net.Sockets.SocketException: 无法建立连接,因为目标机器在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress 处主动拒绝 127.0.0.1:9666 socketAddress) 在 System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean
        • 服务是否有可能无法使用共享连接访问互联网?我知道本地系统帐户下的windows服务可以使用共享连接访问互联网,如发送电子邮件
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-29
        • 2013-04-19
        • 2011-10-14
        相关资源
        最近更新 更多