尝试以其访问权限禁止的方式访问套接字

时间:2013-03-25 16:29:12

标签: sql-server sql-server-2008 sockets tcp

我在HostGator上有一个网站,还有一个运行SQL Server 2008R2的专用服务器。 我使用的连接字符串是X.X.X.X,1433,它指向我的专用服务器的IP地址。 我在我的服务器上进行了防火墙设置,以便我可以使用SSMS&从我的家用电脑登录SQL Server。

完成后,我的印象是从hostGator托管站点连接到SQL可以正常工作。 我收到以下错误:

  

建立a时发生网络相关或特定于实例的错误   连接到SQL Server。服务器未找到或无法访问。   验证实例名称是否正确以及SQL Server是否已配置   允许远程连接。 (提供者:TCP提供者,错误:0 - 尝试是   以访问权限禁止的方式访问套接字。)

我查了这个错误并找到了很多解释,但没有解决我的情况。 我的服务器运行Windows 2008 w / IIS 7.5。 HostGator技术支持确保我们不会遇到任何问题。]]

我的防火墙允许TCP端口1433,& SQL Server Browser服务的UDP端口1434。

由于我有一个专用服务器,我没有人向我的托管公司提出这个问题。

10 个答案:

答案 0 :(得分:14)

根据此link

如果复制服务尝试使用其他人占用的端口或故障NIC,则可能会出现此症状。请尝试以下步骤:

  1. 重新启动Windows防火墙服务
  2. 重新启动有问题的机器
  3. 重新启动“TCP / IP堆栈”。以管理员身份运行CMD,键入“netsh int ip reset resetlog.txt”以重置TCP / IP。
  4. 尝试暂时禁用防病毒软件。

答案 1 :(得分:3)

毫不奇怪,当另一个进程正在侦听所需的端口时,可能会出现此错误。今天发生这种情况时,我启动了一个Apache Web服务器实例,监听其默认端口(80),忘记了我已经运行了IIS 7,并在该端口上进行侦听。这在Port 80 is being used by SYSTEM (PID 4), what is that?中得到了很好的解释。更好的是,那篇文章指向Stop http.sys from listening on port 80 in Windows,它解释了一种非常简单的解决方法,只需要一个提升的命令提示符和一行编辑的一点帮助我的主机文件。

答案 2 :(得分:1)

我的Windows防火墙阻止了端口8080,因此我将其更改为5000并且它有效!

答案 3 :(得分:1)

根据https://stackoverflow.com/a/33859341/446250,为我的以太网适配器启用了互联网连接共享,最终导致了这个问题。禁用共享可解决问题

答案 4 :(得分:1)

Restart-Service hns可以通过Hyper-V更改端口占用者。它可能会释放您需要的端口。

答案 5 :(得分:0)

如果您需要使用SSMS远程访问hostgator上的SQL Server,则需要在hostgator中列出您的IP白名单。 通常,打开白名单IP端口需要1小时

答案 6 :(得分:0)

我的情况和解决方案:我已经创建并启用了HyperV以太网适配器。由于某些原因,我的主要Windows计算机使用的是“虚拟”以太网适配器,而不是“硬件”适配器。

我禁用了虚拟以太网,并显示了更改网络公共/隐私设置的网络设置。

答案 7 :(得分:0)

对于Windows版Docker和Hyper-V,我有一个类似的问题,它保留了供自己使用的端口-在我的情况下,端口3001无法访问。

  • 该端口未被其他进程使用-在Administrator Powershell提示符中运行netstat -ano | findstr 3001时未显示任何内容。
  • 但是,netsh interface ipv4 show excludedportrange protocol=tcp表明该端口处于排除范围之一。

我能够遵循Docker for Windows问题#3171(Unable to bind ports: Docker-for-Windows & Hyper-V excluding but not using important port ranges)中描述的解决方案:

  1. 禁用Hyper-V:

    dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
    
  2. 在所需的重启后,保留所需的端口,以便Hyper-V不会将其保留回去:

    netsh int ipv4 add excludedportrange protocol=tcp startport=3001 numberofports=1
    
  3. 重新启用Hyper-V:

    dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
    

此后,我能够启动我的docker容器。

答案 8 :(得分:0)

对于其他遇到此错误但原因略有不同的人,您可以执行以下操作进行故障排除。通过右键单击并选择以管理员身份运行来打开文本编辑器。打开 C:\Program Files\pgAdmin 4\v4\web\pgAdmin4.py 并添加一行代码,不添加任何其他内容。输出将大不相同并且很有帮助。您可以在系统托盘 > pgAdmin > 查看日志中找到错误。

import traceback # <--- add this line too.
try:
    app.run(
        host=config.DEFAULT_SERVER,
        port=config.EFFECTIVE_SERVER_PORT,
        use_reloader=(
            (not app.PGADMIN_RUNTIME) and app.debug and
            os.environ.get("WERKZEUG_RUN_MAIN") is not None
        ),
        threaded=config.THREADED_MODE
    )

except IOError:
    #app.logger.error("Error starting the app server: %s", sys.exc_info())
    app.logger.error("Error starting the app server: %s", traceback.format_exc()) # <--- add this line!  

取而代之的是:

ERROR flask.app: Error starting the app server: (<class 'OSError'>, OSError(10013, 'An attempt was made to access a socket in a way forbidden by its access permissions', None, 10013, None),

你会得到这个:

2021-03-01 11:38:33,817: ERROR  flask.app:  Error starting the app server: (<class 'OSError'>, OSError(10013, 'An attempt was made to access a socket in a way forbidden by its access permissions', None, 10013, None), <traceback object at 0x00000279EF74A3C0>)
Traceback (most recent call last):
  File "C:/Program Files/pgAdmin 4/v4/web/pgAdmin4.py", line 210, in main
    app.run(
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\flask\app.py", line 943, in run
    run_simple(host, port, self, **options)
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 1052, in run_simple
    inner()
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 996, in inner
    srv = make_server(
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 847, in make_server
    return ThreadedWSGIServer(
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib/site-packages\werkzeug\serving.py", line 740, in __init__
    HTTPServer.__init__(self, server_address, handler)
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib\socketserver.py", line 452, in __init__
    self.server_bind()
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib\http\server.py", line 138, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "C:/Program Files/pgAdmin 4/v4/venv/Lib\socketserver.py", line 466, in server_bind
    self.socket.bind(self.server_address)
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions

答案 9 :(得分:0)

通过关闭防火墙中的环回地址过滤,我能够解决本地 Analysis Services 实例上的相同错误消息。