Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打开SQL Server端口的通用方法_C#_Sql Server_Ports - Fatal编程技术网

C# 打开SQL Server端口的通用方法

C# 打开SQL Server端口的通用方法,c#,sql-server,ports,C#,Sql Server,Ports,在我的应用程序中,我通常使用SQL实例枚举器来获取SQL Server的所有实例。但是我发现运行防火墙和/或互联网安全不允许应用程序访问实例。为此,我必须建议此人关闭防火墙,以便它可以访问实例,这不是一个好主意。我在谷歌上搜索了一下,但我发现一些批处理文件脚本适用于特定的Windows版本(Windows Server 2008、XP等) 但是我想知道在任何机器上打开SQL Server端口的一些通用脚本或方法。如何解决这个问题?您可能会发现,它很有用(C代码) 也许一些powershell脚本

在我的应用程序中,我通常使用SQL实例枚举器来获取SQL Server的所有实例。但是我发现运行防火墙和/或互联网安全不允许应用程序访问实例。为此,我必须建议此人关闭防火墙,以便它可以访问实例,这不是一个好主意。我在谷歌上搜索了一下,但我发现一些批处理文件脚本适用于特定的Windows版本(Windows Server 2008、XP等)

但是我想知道在任何机器上打开SQL Server端口的一些通用脚本或方法。如何解决这个问题?

您可能会发现,它很有用(C代码)

也许一些powershell脚本也能做到这一点:而且


但是它只是关于Windows防火墙的。请记住,市场上有不同的软件防火墙,大多数情况下也有硬件防火墙(有时不止一个)。

我理解这个问题,甚至理解潜在的“需求”。但是,我确实认为应该更改应用程序的体系结构,而不是要求人们公开他们的数据库服务器。公开数据库服务器是一种非常糟糕的做法,如果这是应用程序运行的唯一方式,我将无法安装应用程序。@chrislive-我提到过关闭防火墙(但时间很短)这不是一个好的做法。我认为允许SQL Server使用您自己机器的资源不会公开数据库。我想说得更远。要求他们打开防火墙上的SQL端口也同样糟糕。如果它是纯本地的,那么您应该能够在连接字符串中从TCP切换到使用命名管道。