|
2
|
Programación / .NET (C#, VB.NET, ASP) / Controlar session en espacio de usuario
|
en: 24 Septiembre 2013, 22:16 pm
|
Buenas a todos, tengo un problemilla y la verdad esq me he pateado google y no consigo la solución... lo planteo.
El espacio de usuario tiene sus variables de session con lo que se controla todo, cuando el usuario cierra la web, sale, necesito decirle a la base de datos que el usuario pasa de 1 (conectado) a 0 (desconectado) además de limpiar todas las variables de session, todo eso se hace desde una pag.aspx la cual tengo que llamar. La movida es como llamarla, he probado con javascritp a tope, pero lo que funciona en un navegador no funciona en el otro... Además me encuentro con el problema de que si el usuario va a la zona de configuración salta el control javascript y llama al archivo salir.aspx que es donde se limpia todo, puff, no sé si me habré explicado bien, muchas gracias y un saludo!
|
|
|
4
|
Programación / .NET (C#, VB.NET, ASP) / Re: .Net Global.asax no funciona
|
en: 21 Marzo 2013, 01:10 am
|
Buenas, no estoy seguro de que sea la solución al problema con el que comencé, he probado tantas cosas. En definitiva, he probado con diferentes versiones de la 3 pasando por 3.5 y 4, convirtiendo el proyecto y tal, ningún cambio, estaba claro al probar otros ejemplos que lo que fallaba era el proyect. Etiqueta por defecto al crear nuevo elemento:<%--<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="index.aspx.vb" Inherits="xXx.index" %>--%>
Etiqueta que siempre pongo para evitar algunos problemas:<%@ Page Language="vb" AutoEventWireup="true" CodeFile="index.aspx.vb" Inherits="index" Title="xXx" %>
Con la segunda etiqueta sucede que el compilador en el aspx.vb no reconoce los controles que has ido montando en el aspx, pero salvo eso, que te lo marca como error, el funcionamiento es correcto. Aun así al hacer el nuevo proyecto he cuidado que en todos los archivos viniese la etiqueta por defecto (la primera). Por supuesto dejo el Global intacto, de fabrica. Pongo punto de interrupción en el Global y zas, se para, elimino la web y se para también. Vuelvo a repetir tal cual, si hacer nada en el código y los puntos de interrupción en el Global hacen su función. Acabando, pongo el código en el Global, que lo que hace es instanciar un objeto que llama a una función a la cual se la pasa un parámetro que es una variable session, y el objeto = Nothing. Ejecuto, ZAS: Ya no se para la aplicación en el archivo Global, cierro navegador y tampoco se para, vamos quiero decir, los dos puntos de interrupción que tengo puestos en la entra y la salida. Elimino código y vuelvo a repetir, se para correctamente. Pues nada problema localizado, ahora a ver que hago con esa sección de código que se debía ejecutar en ese momento para decirle a la BD que el usuario se había ido xD Un Saludo!!!
|
|
|
5
|
Programación / .NET (C#, VB.NET, ASP) / Re: .Net Global.asax no funciona
|
en: 20 Marzo 2013, 20:44 pm
|
Buenas, pues nada, ahora ya no se genera error, pero el contenido de global no se ejecuta, vamos tan simple como poner un punto de interrupción y nada más ejecutarse la web debería parar, pero no hay manera.
He probado incluso a instanciar, pero nada xD La muerte
|
|
|
6
|
Programación / .NET (C#, VB.NET, ASP) / [Solucionado].Net Global.asax no funciona
|
en: 20 Marzo 2013, 17:10 pm
|
Buenas, tengo un problema con el fichero Global, la verdad esq estoy ya un poco desconcertado, aunq también es la primera vez que lo utilizo por lo que el problema puedo ser yo. Problema 1: El contenido del fichero Global no se ejecuta. Problema 2: Después de hacer pruebas con el problema 1, al ejecutar el proyecto me dice que no encuentra el fichero Global y me pone lo siguiente: <%@ Application Codebehind="Global.asax.vb" Inherits="xxx.Global_asax" Language="vb" %>
La solución en este punto es quitar "Inherits="xxx.Global_asax"", tema resuelto para el Problema 2, pero sigue sin ejecutarse el contenido del arch Global. Me he descargado varios proyectos donde se utiliza Global y funcionan correctamente, lo que me llevo a cambiar de "maceta" el contenido del proyecto, abrí un nuevo proyect, lo primero que hice fue crear el archivo Global y trasplante todo, lo ejecute y ZAS, ejecutaba el contenido del Global, volví a ejecutar y empecé de nuevo desde el Problema 1. Todo esto ha pasado con el contenido del archivo Global que viene por defecto, yo lo único que quiero es controlar cuando la aplicación se cierra, cuando una variable de session finaliza xD, solo eso. Nota: He probado modificando la etiqueta en todos sus puntos, la que he puesto es la que se crea por defecto al crear el archivo Global. Cómo lo veis? Muchas gracias y un saludo.
|
|
|
7
|
Programación / .NET (C#, VB.NET, ASP) / Re: Chat aspx.vb y Ajax
|
en: 19 Marzo 2013, 13:01 pm
|
Uno de los problemas que encuentro en muchos ejemplos, esq ya se utilice un Listbox o un BulletedList el scroll se "peta", o sea que el timer con un intervalo de "2" por ejemplo mantiene el scroll en una posición y no se puede bajar ni subir por su continua actualización.
Supongo que una de las soluciones sería javascript, mi killer xD
|
|
|
8
|
Programación / .NET (C#, VB.NET, ASP) / Chat aspx.vb y Ajax
|
en: 17 Marzo 2013, 19:04 pm
|
Buenas,
Llevo ya unas semanas haciendo un proyecto personal y ya de paso aprendiendo Ajax y tal, nunca he sido de web, pero aquí estoy dandolo todo.
Ahora me enfrento a un chat. He visto miles de ejemplo, me he descargado un montón de proyectos que cumplan con las condiciones en las que voy a trabajar y tal, que son las del título.
Después de ver tanta información he visto que hay mil maneras, una que me llama la atención es manejar la información con archivos xml, pero veo que no es la mejor, me ha parecido entender que mediante javascript ejecutandose del lado del cliente se machaca menos al servidor y es mejor, en plan conectandose un cliente con otro, si no lo entendí mal claro.
Luego otra cosa que me he planteado han sido los controles de asp que debería utilizar, esto es más fácil, ListBox y TextBox aunq hay personas que utilizan cosas que casi hacen que me caiga de la silla, como literales html con javascript, si no me confundo claro.
Otro tema es también como controlar las sesiones, cuando caducan y demás para dejar libre al usuario.
Lo que pretendo esq sean habitaciones y que si uno esta ocupado no puedan hablar con él. Bueno un poco al grano, un chat realmente es muy fácil de hacer no!??!
El secreto únicamente esta en el timer que actualice cada segundo!?
Tampoco quiero hacer una "basura", o sea que si me tengo que partir en dos hasta conseguirlo pues ya esta. xD En definitiva pido vuestra opinión general para saber que se necesita tener en cuenta para hacer un chat.
Muchas gracias y un saludo.
|
|
|
9
|
Programación / .NET (C#, VB.NET, ASP) / Re: [VB 2012] Login con datos de archivo de texto (.txt)
|
en: 13 Marzo 2013, 19:30 pm
|
Buenas, a lo mejor para lo que deseas te viene mejor un archivo .ini Public Class mcls_archivosIni ' Funciones API Private Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer Private Declare Ansi Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer Private Declare Ansi Function GetPrivateProfileInt Lib "kernel32.dll" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Integer, ByVal lpFileName As String) As Integer Private Declare Ansi Function FlushPrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As Integer, ByVal lpKeyName As Integer, ByVal lpString As Integer, ByVal lpFileName As String) As Integer Dim strFilename As String ' Constructor, acepta un nombre de fichero (si no existe se creará) Public Sub New(ByVal Filename As String) strFilename = Filename End Sub ' Propiedad para Read-only ReadOnly Property FileName() As String Get Return strFilename End Get End Property Public Function ObtenerString(ByVal sección As String, ByVal Clave As String, ByVal [Default] As String) As String ' Devuelve una cadena desde tu archivo INI Dim intCharCount As Integer Dim objResult As New System.Text.StringBuilder(256) intCharCount = GetPrivateProfileString(sección, Clave, [Default], objResult, objResult.Capacity, strFilename) If intCharCount > 0 Then 'Devuelve el resultado encontrado ObtenerString = Left(objResult.ToString, intCharCount) Else 'En caso de que no se encuentre nada, se devuelve "". ObtenerString = "" End If End Function Public Function ObtenerInteger(ByVal sección As String, ByVal Clave As String, ByVal [Default] As Integer) As Integer ' Devuelve un número desde tu archivo INI Return GetPrivateProfileInt(sección, Clave, [Default], strFilename) End Function Public Function ObtenerBoolean(ByVal sección As String, ByVal Clave As String, ByVal [Default] As Boolean) As Boolean ' Devuelve un valo lógico desde un archivo INI Return ObtenerString(sección, Clave, [Default]) End Function Public Sub EscrbirString(ByVal sección As String, ByVal Clave As String, ByVal Valor As String) ' Escribe una cadena a un archivo INI WritePrivateProfileString(sección, Clave, Valor, strFilename) Flush() End Sub Public Sub EscrbirInteger(ByVal sección As String, ByVal Clave As String, ByVal Valor As Integer) ' Escribe un número a un archivo INI EscrbirString(sección, Clave, CStr(Valor)) Flush() End Sub Public Sub EscrbirBoolean(ByVal sección As String, ByVal Clave As String, ByVal Valor As Boolean) ' Escribe un valor logico a un arhcivo INI EscrbirString(sección, Clave, Valor) Flush() End Sub Private Sub Flush() ' Stores all the cached changes to your INI file ' Guarda todos los cambios al archivo INI FlushPrivateProfileString(0, 0, 0, strFilename) End Sub End Class
Espero que te sirva. UN saludo.
|
|
|
|
|
|
|