COMO CONFIGURAR A PORTA DO SQL EXPRESS VIA CÓDIGO
A classe não foi encontrada.
Busquei nas referencias, mas deu erro em várias partes.
Obrigado!
Por exemplo, no meu computador, fica no caminho:
C:\Program Files (x86)\Microsoft SQL Server\130\SDK\Assemblies
Se não me engano, você vai precisar referenciar os arquivos:
Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.Dmf.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.ServiceBrokerEnum.dll
Microsoft.SqlServer.SqlWmiManagement.dll
Microsoft.SqlServer.WmiEnum.dll
Microsoft.SqlServer.SqlEnum.dll
Abraços!
Citação::
Amigo... eu fiz essa função que permite liberar porta no firewall do Windows
Ela está em Vb.Net
Com alguns ajustes vc escreve ela em C
Public Function CreatePort(Nome As String, NumPort As Integer, Optional Scopo As NET_FW_SCOPE_ = NET_FW_SCOPE_.NET_FW_SCOPE_ALL) As Boolean
Try
If String.IsNullOrEmpty(Nome) Then Throw New Exception([Ô]Não foi informado um Nome para a porta...[Ô])
If NumPort = 0 Then Throw New Exception([Ô]Falta informar o número da porta a ser craida...[Ô])
Dim Ports As INetFwOpenPorts = Nothing
Dim NetFwMgrType As Type = Type.GetTypeFromProgID([Ô]HNetCfg.FwMgr[Ô], False)
Dim mgr As INetFwMgr = DirectCast(Activator.CreateInstance(NetFwMgrType), INetFwMgr)
Ports = DirectCast(mgr.LocalPolicy.CurrentProfile.GloballyOpenPorts, INetFwOpenPorts)
Dim Tipo As Type = Type.GetTypeFromProgID([Ô]HNetCfg.FWOpenPort[Ô])
Dim Port As INetFwOpenPort = DirectCast(Activator.CreateInstance(Tipo), INetFwOpenPort)
Port.Name = Nome
Port.Port = NumPort
Port.Scope = NET_FW_SCOPE_.NET_FW_SCOPE_ALL
Port.Protocol = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP [ô]protocol;
Port.Enabled = True
Port.IpVersion = NET_FW_IP_VERSION_.NET_FW_IP_VERSION_ANY
Port.RemoteAddresses = [Ô]*[Ô]
Ports.Add(Port)
Return True
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]Firewall do windows[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
End Function
Tentei usar esse teu códio o VB Net não reconheceu a maioria dos comandos. ficou tudo sublinhado em vermelho
Falta algum Namespaces?
Asemby: Interop.NetFwTypeLib.dll
Já veja essas duas funções tb:
Public Function ExistPort(NumPort As Integer) As String
Try
If NumPort = 0 Then Throw New Exception([Ô]Não foi informado o número da porta...[Ô])
Dim Nome As String = [Ô][Ô]
Dim Tipo As Type = Type.GetTypeFromProgID([Ô]HNetCfg.FwMgr[Ô])
Dim FireWall As INetFwMgr = DirectCast(Activator.CreateInstance(Tipo), INetFwMgr)
Dim Ports As INetFwOpenPorts = FireWall.LocalPolicy.CurrentProfile.GloballyOpenPorts
Dim EnumPorts As IEnumerator = Ports.GetEnumerator
While EnumPorts.MoveNext
Dim CurPort As INetFwOpenPort = DirectCast(EnumPorts.Current, INetFwOpenPort)
If CurPort.Port = NumPort Then
Nome = CurPort.Name
Exit While
End If
End While
Return Nome
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]Firewall do windows[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Return [Ô][Ô]
End Try
End Function
Public Function RemovePort(NumPort As Integer) As Boolean
Dim Ports As INetFwOpenPorts = Nothing
Try
If ExistPort(NumPort) <> [Ô][Ô] Then
Dim Tipo As Type = Type.GetTypeFromCLSID(New Guid([Ô]{304CE942-6E39-40D8-943A-B913C40C9CD4}[Ô]))
Dim FwMgr As INetFwMgr = DirectCast(Activator.CreateInstance(Tipo), INetFwMgr)
Dim Policy As INetFwPolicy = FwMgr.LocalPolicy
Dim fwProfile As INetFwProfile = Policy.CurrentProfile
Ports = fwProfile.GloballyOpenPorts
Ports.Remove(NumPort, NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP)
End If
Return True
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]Firewall do windows[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
Finally
If Not Ports Is Nothing Then Ports = Nothing
End Try
End Function