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

Jer*_*rry 14 sockets sql-server tcp sql-server-2008

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

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

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

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

我的防火墙允许TCP端口1433,以及SQL Server Browser服务的UDP端口1434.

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

ale*_*ian 49

我在 Docker for Windows 和 Hyper-V 中遇到了类似的问题,它们保留了供自己使用的端口 - 在我的情况下,它是3001无法访问的端口。

  • 该端口未被另一个进程使用 -netstat -ano | findstr 3001在管理员 Powershell 提示符下运行,什么也没显示。
  • 但是,netsh interface ipv4 show excludedportrange protocol=tcp显示端口位于排除范围之一。

我能够遵循 Docker for Windows 问题 #3171 中描述的解决方案(无法绑定端口:Docker-for-Windows & Hyper-V 不包括但不使用重要端口范围):

  1. 禁用 Hyper-V:

    dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
    
    Run Code Online (Sandbox Code Playgroud)
  2. 所需的重新启动后,保留所需的端口,以便 Hyper-V 不会保留它:

    netsh int ipv4 add excludedportrange protocol=tcp startport=3001 numberofports=1
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重新启用 Hyper-V:

    dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
    
    Run Code Online (Sandbox Code Playgroud)

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

  • 仅当我的 hyper-v 被禁用时,这才起作用,一旦我再次打开 hyper-v,我就开始遇到相同的错误。在 admin pwsh 中运行这个对我有用``Restart-Service hns -f`` (3认同)
  • 链接的 Github 问题中的[一个特定解决方案](https://github.com/docker/for-win/issues/3171#issuecomment-750779531) 对我有用,无需担心特定端口:`net stop winnat`。 (2认同)

Jas*_*ter 15

根据这个链接:

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

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

  • McAfee防病毒软件默认阻止端口25,"以防止群发邮件攻击". (4认同)

小智 8

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


Dav*_*ray 6

毫不奇怪,当另一个进程正在侦听所需的端口时,会出现此错误。今天,当我启动Apache Web服务器的实例,侦听其默认端口(80),忘记我已经在运行IIS 7并侦听该端口时,发生了这种情况。这在SYSTEM 80(PID 4)正在使用端口80中得到了很好的解释,那是什么?更好的是,该文章指出了停止http.sys侦听Windows中的端口80的方法,它解释了一种非常简单的解决方法,仅需提升权限的命令提示符下的一点帮助以及对我的主机文件的单行编辑。