viernes, 12 de febrero de 2010

Escribir en un archivo de log la cadena XML que recibe un webservice

Dim httpStream As Stream = Context.Request.InputStream

Dim longitud As Integer = httpStream.Length
Dim buffer(longitud) As Byte

httpStream.Seek(0, 0)
httpStream.Read(buffer, 0, longitud)

Dim cad As String = System.Text.ASCIIEncoding.ASCII.GetString(buffer)

Dim path As String = Server.MapPath(".") + "\log2.txt"

Dim sw As StreamWriter = New StreamWriter(path, True)
sw.WriteLine("->" & Date.Now.ToString & cad)
sw.Close()


Evidentemente debes tener permiso de escritura sobre el directorio donde quieras guardar el log.

jueves, 11 de febrero de 2010

VB y C# juntos en APP_CODE

Juntos pero no revueltos. Ese es el truco.

Si intentas tener en la carpeta APP_Code clases escritas en dos lenguajes diferentes el compilador te dice que na nay. Más concretamente, "The files 'xxx.cs' and 'xxx.vb' use a different language, which is not allowed since they need to be compiled together"

Para poder hacerlo debes ubicar el código escrito en un lenguaje en una carpeta, dejando el escrito en el otro en la raíz (o lo metes en otro directorio, lo que veas mejor). En mi caso dejo el VB en la raíz y meto las clases escritas en C# en el directorio APP_Code\APP_Code_CS. Una vez hecho esto, sólo hay que decirle al compilador que compile de manera separada la carpeta APP_Code_CS. Nos vamos al webconfig, a la sección "<compilation>" y escribimos:

<codeSubDirectories>
<add directoryName="App_Code_CS"/>
</codeSubDirectories>


Y a correr.