gpt4 book ai didi

c# - SocketException 阻止在 Windows 服务中使用 C# TCPListener

转载 作者:行者123 更新时间:2023-12-03 11:50:54 27 4
gpt4 key购买 nike

我有一个 Windows 服务,它在启动时执行以下操作。通过控制台应用程序运行时,它工作正常,但是一旦我放入 Windows 服务,我就会得到以下异常。这是我到目前为止所尝试的:

  • 禁用防火墙,还尝试为 exe、端口和协议(protocol)添加显式排除
  • 检查 CAS 策略配置,显示不受限制的权限
  • 将服务配置为作为管理员帐户、本地系统、本地服务和网络服务运行,每个都具有相同的结果
  • 尝试了不同的端口
  • 也试过 127.0.0.1 只是为了看看...同样的问题

  • 这让我很头疼,所以任何帮助将不胜感激:

    编码:
    var _listener = new TcpListener(endpoint); //192.168.2.2:20000
    _listener.Start();

    产生的异常:
    Service cannot be started. System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions
    at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
    at System.Net.Sockets.Socket.Bind(EndPoint localEP)
    at System.Net.Sockets.TcpListener.Start(Int32 backlog)
    at System.Net.Sockets.TcpListener.Start()
    at Server.RequestHandler.StartServicingRequests(IPEndPoint endpoint)
    at Server.Server.StartServer(String[] args)
    at Server.Server.OnStart(String[] args)
    at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

    最佳答案

    我建议您使用 IPAddress.Any (0.0.0.0) 和特定端口绑定(bind)到端点。

    错误消息可能是因为另一个应用程序已经打开了该端口或最近打开了它exclusively .

    关于c# - SocketException 阻止在 Windows 服务中使用 C# TCPListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2779968/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com