Autor
|
Tema: Conectar a un Servidor por Internet (Leído 7,650 veces)
|
Choclito
Desconectado
Mensajes: 99
|
Hola a todos yo trabajo realizando aplicaciones con conexiones locales mediante el siguiente codigo. ahora quiero ver si se puede conectar por internet una aplicacion y ver si puedo seguir usando la siguiente forma de conectarse.. me estoy rompiendo la cabeza en intentar conectar mediante internet pero no tengo ni idea.. me gustaria si me pudieran dar algunas pautas o si tuvieran ejemplos seria mucho mejor. me dijeron que busque DNS pero tuve buscando pero no encuentro ejemplos claros haber si me hechan una mano. Imports System.Data.OleDb Imports System.Security.Cryptography Public Class Cls_Conexion Public Conexion As New OleDb.OleDbConnection Dim ControlError As String Public Function Abrir(ByVal Servidor As String, ByVal BaseDatos As String, ByVal Usuario As String, ByVal Password As String) As Boolean Try Conexion.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= c:\trabajito; Extended Properties= ""Excel 12.0;HDR=YES;""") Conexion.Close() Conexion.Open() Conexion.Close() Abrir = True Catch ex As Exception Abrir = False MsgBox("Acceso no Permitido", vbCritical, "Módulo de Registro Civil") End Try End Function Public Function AbrirSql(ByVal Sql As String) As DataTable On Error GoTo ControlError Dim ObjDataSet As New DataSet Conexion.Open() Dim ConsultaSql As New OleDb.OleDbCommand(Sql, Conexion) 'ConsultaSql.CommandType = CommandType.StoredProcedure Dim ObjDataAdapter As New OleDb.OleDbDataAdapter(ConsultaSql) Dim ObjDataTable As New DataTable ObjDataAdapter.Fill(ObjDataTable) AbrirSql = ObjDataTable Conexion.Close() Exit Function ControlError: MsgBox(Err. Description & " No se Puede Realizar esa Operación", MsgBoxStyle. Critical, "Módulo Registro Civil") Conexion.Close() End Function Public Function EjecutarSqlOLEDB(ByVal cComando As OleDbCommand) As Boolean Dim transaction As OleDbTransaction Conexion.Open() transaction = Conexion.BeginTransaction() Try cComando.Transaction = transaction cComando.Connection = Conexion cComando.ExecuteNonQuery() transaction.Commit() Conexion.Close() EjecutarSqlOLEDB = True Catch ex As Exception transaction.Rollback() Conexion.Close() EjecutarSqlOLEDB = False MsgBox(Err. Description & " No se Puede Realizar esa Operación", MsgBoxStyle. Critical, "Módulo Registro Civil") 'MessageBox.Show("No se puede realizar la conexion a la Base de Datos... Contáctese con el Administrador del Sistema", "SIGAF - ESCALAFON", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Function End Class
|
|
|
En línea
|
|
|
|
.::IT::.
Desconectado
Mensajes: 167
|
"Choclito" lamento decepcionarte pero si estas usando bases de datos de archivo(Excel, access entre otros) vas ah poder conectarte ah ellas usando software de terceros ya sea el famoso hamachi ,OPenvpn entre otros, en mi opinión te recomiendo Openvpn es un poco mas difícil de configurar que el hamachi(que es muy fácil)pero es mas rápido, como recomendación seria que uses motores de bases de datos como Postgresl,MySQL, MSSQl, Oracle etc. Y casi lo olvido conectarse ah una base de datos de archivo por Internet es muy pero muy lento, y para terminar si usas Windows Xp para adelante pues puedes montar una VPN casera que por cierto es mas rápida que openvpn(yo lo probé y te lo puedo garantizar) de dejo el link cualquier duda consulta en el foro http://www.elguille.info/sistema/VPN/vpn_servidor.aspx
|
|
« Última modificación: 8 Noviembre 2010, 17:39 pm por .::IT::. »
|
En línea
|
Simplemente .::IT::.
|
|
|
.mokk.
Desconectado
Mensajes: 177
|
Yo la verdad te aconsejaria mejor hacerlo en MySQL o MSSQL, si ya pasaras a hacerlo por internet, ya que como dijo .::IT::. , sera mucho mas tardado y ademas quien quiere estarse matando por hacer una conexion a archivos remotos si para ello tenemos la facilidad de MySQL y/o MSSQL. Ademas es casi lo mismo la conexion o am el codigo de conexion Ejemplo Conectar a MSSQL imports system.data.sqlclient module Conexion0 dim con as sqlconnection dim ad as new sqldataadapter dim dt as datatable dim comando as string Public conexion As String = "data source = 127.0.0.1; initial catalog = GunzDB; user id = sa; password = zombie000" 'datasource = servidor , initial catalog=BaseDeDatos , userid= usuario , password = contraseña public sub conectar con = new sqlconnection() con.connectionstring(conexion) try con.open() msgbox("Conexion Exitosa (:") con.close() catch msgbox("Error en la conexion") end try end sub 'Ejemplo de una query public sub query dt = new datatable 'Query para obtener todos los datos de la tabla Cuentas para al final mostrarla en un Datagridview comando = "SELECT * FROM Cuentas" ad = new sqldataadapter(comando,conexion) ad.fill(dt) Form1.datagridview1.datasource = dt end sub end module
try
|
|
|
En línea
|
|
|
|
Choclito
Desconectado
Mensajes: 99
|
Ola esto es mi otra conexion que hago ya y quiero ver si con esta conexion funciona nota : me olvide decirle que mi gestor de base de datso era el sql Imports System.Data.OleDb Imports System.Security.Cryptography Imports System.Data.SqlClient Public Class clsConexion Public cadenaconexion As New SqlConnection Public Function Abrir(ByVal server As String, ByVal DB As String, ByVal usuario As String, ByVal clave As String) As Boolean Try cadenaconexion.ConnectionString = "Data Source=(local);Initial Catalog=PLANILLA;integrated security=true" cadenaconexion.Close() Catch ex As Exception MessageBox.Show(ex.Message.ToString()) End Try End Function Public Function AbrirSql(ByVal sentenciaSQL As String) As DataTable cadenaconexion.Open() Dim consulta As New SqlCommand(sentenciaSQL, cadenaconexion) Dim daBD As New SqlDataAdapter(consulta) Dim dtBD As New DataTable daBD.Fill(dtBD) AbrirSql = dtBD cadenaconexion.Close() End Function Public Sub Cerrarconexion() cadenaconexion.Close() End Sub End Class
|
|
|
En línea
|
|
|
|
.mokk.
Desconectado
Mensajes: 177
|
Pues si deberia funcionar, solo recuerda tambien que a la Base de Datos a la cual accederemos si es en MSSQL tiene que tener permitido el acceso remoto, y asignarle un userid y contraseña para la seguridad, la conexion que tu usas ahi es mayormente usado para locales.
y en la Funcion Abrir no estoy seguro porque no colocar el cadenaconexion.Open()
Por lo demas lo vi bien
|
|
|
En línea
|
|
|
|
Choclito
Desconectado
Mensajes: 99
|
ya muchas gracias pero lo que quiero saber es como configurar la conexion .. lo hago con esta cadena de conexion o tengo que usar otra .. eso es la gran duda que tengo como tu dices eso es para conexiones locales .. pero para conectarme tendra que usar otro codigo o algo ?? porque hasta donde estaba investigando me dijeron que haga conexiones ODBC es cierto eso ..?
|
|
|
En línea
|
|
|
|
.mokk.
Desconectado
Mensajes: 177
|
hehehe si tmb se puede con ODBC o he visto pero yo siempre lo hago con SQL ahi hehe si te fijas en el source anterior que puse el codigo de conexion es "data source = 127.0.0.1; initial catalog = GunzDB; user id = sa; password = zombie000"
Con esa es la que yo uso pra conectarme a Base de Datos remotas en MSSQL solo claro en ves de esos datos pongo la IP del servidor un ejemplo a servidor remoto seria "data source = crymore.sytes.net; initial catalog = GunzDB; user id = sa; password = zombie000" Con esa podras entrar a mi Base de Datos crymore.sytes.net es mi NO-IP para hacer redireccion a mi hehe, aunque GunZDB es una Base de Datos que uso para un juego y por ahora esta vacia hehe ahi puedes intentar entrar en ella para que veas (:
|
|
|
En línea
|
|
|
|
MANULOMM
Desconectado
Mensajes: 559
Erepublik.com
|
OK, para el caso esta bien.
Pero te presento el mundo de los servicios web, publicar la BD es una mala practica, seria muy sensible a un ataque, un servicio web puede viajar por el puerto 80 ( el mas comun) y utilizar SSL para encripcion, la conexión con la BD es mas vulnerable.
Atentamente,
Juan Manuel Lombana Microsoft Certified Professional Microsoft Student Partner Medellín - Colombia
|
|
|
En línea
|
|
|
|
.mokk.
Desconectado
Mensajes: 177
|
OK, para el caso esta bien.
Pero te presento el mundo de los servicios web, publicar la BD es una mala practica, seria muy sensible a un ataque, un servicio web puede viajar por el puerto 80 ( el mas comun) y utilizar SSL para encripcion, la conexión con la BD es mas vulnerable.
Atentamente,
Juan Manuel Lombana Microsoft Certified Professional Microsoft Student Partner Medellín - Colombia
Eso si es verdad, por lo mismo en esta clase de proyectos hay que tener cuidado, desde saber quienes lo tendran y que ellos no se lo pasen a terceros, tambien hacer un login de tipo HWID para hacerlo mejor, y claro proteger nuestra aplicacion para que no pueda ser leida facilmente ya sea con .NET Reflector o algun otro. Yo solo uso esta forma ya que donde esta hosteada la DB, no es mi PC y crear una web en ella para manejar la DB se me hace mas tedioso que crear una aplicacion de escritorio hehe , proximamente vere eso para hacer alguna en silverlight(si esque se puede).
|
|
|
En línea
|
|
|
|
Choclito
Desconectado
Mensajes: 99
|
Hola de new mira esta interante tu conexion crymore.sytes.net eso tu lo configurastes en tu Pc y como haria yo por ejemplo para configurar eso en mi servidor para poderme conectar o solo pido Ip ? creo que con eso se solucionaria la duda que tengo ..?
|
|
|
En línea
|
|
|
|
|
|