viernes, 18 de febrero de 2011

GoogleBot no tiene idioma

Sintomas:
Una página dinámica que se visualiza correctamente en los exploradores no es leida por googlebot.
Causa:
Parece ser que Googlebot no suministra idioma a la página como hacen casi todos los exploradores.
En el caso de la página en cuestión el código consultaba la colección Request.UserLanguages para establecer el lenguaje por defecto.
Antes de consultar realizaba una comprobación erronea de que la lista no estaba vacía:
if infoASPX.Request.UserLanguages.Count > 0
Digo que era erronea porque la sentencia correcta es:
if infoASPX.Request.UserLanguages isnot nothing andalso infoASPX.Request.UserLanguages.Count > 0

Esos pequeños detalles.
Comentarios:
Lo cierto es que era frustrante, descubrí el problema cuando ví que no se indexaba esta porción de nuestro sitio. Afiné el fallo cuando probé con las herramientas para webmaster de Google. Al verificar la conformidad HTML con http://validator.w3.org/  obtuvé error 500.
Siguiendo la traza de errores con la utilidad correspondiente de IIS7.5 comprobé que solo había errores cuando accedía con GoogleBot y el validator.
Luego descubrí que si el idioma estaba establecido con un parametro en el querystring el error no aparecía y tirando del hilo.....

miércoles, 9 de febrero de 2011

Dar permisos a un usuario para enviar en nombre de un grupo en Exchange 2010

Objetivo:
Que un usuario pueda enviar en nombre de un grupo (send on behalf of).
Solución:
En exchange power shell usar:
Set-DistributionGroup GroupName -GrantSendOnBehalfTo UserName

Por supuesto el usuario deberá saber visualizar en Outlook en campo De de un mensaje.
Comentarios
Creo que la opción desapareció en el interfaz gráfico de exchange 2010.
Un aspecto interesante es que si quieres que todos los miembrosdel grupo puedan enviar en nombre del grupo puedes escribir:
Set-DistributionGroup GroupName -GrantSendOnBehalfTo GroupName

jueves, 3 de febrero de 2011

Subinformes RDLC en report cargado dinámicamente.

Sintomas
Creas un informe RDLC con subreports mediante visual studio.
Cargas dinámicamente el informe pero se produce un error al cargar el subinforme.
No encuentra el archivo.
Por otro lado ¿Cómo cargas los datos del subinforme.
Soluciones:
Debes cargar dinámicamente con loadsubrepordefinitión el subinforme utilizando como nombre del report el Reportname (el que rellenas en usar este informe como subinforme de las propiedades) y no el  del subinforme dentro del informe.
Ejemplo:
Dim informe As New LocalReport
Dim lector As New System.IO.StreamReader(My.Request.PhysicalApplicationPath + "\ListadoOrgsProd.rdlc")
informe.LoadReportDefinition(lector)
lector.Close()
lector = New System.IO.StreamReader(My.Request.PhysicalApplicationPath + "\ListadoProd.rdlc")
informe.LoadSubreportDefinition("ListadoProd.rdlc", lector)
lector.Close()
AddHandler informe.SubreportProcessing, AddressOf infoParametros

Por cierto que en la última línea se resuelve como establecer los datos de subinforme: hay que hacer establecer mediante addHandler la referencia a un procedimiento que se dispará cuando vaya a procesarse el informe:

Sub infoParametros(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)
     e.DataSources.Add(New ReportDataSource("dsProductos", datosProd))
End Sub

martes, 25 de enero de 2011

A partir de hoy, Red y Libertad

A partir de hoy, Red y Libertad


Consideramos imprescindible la retirada de la disposición final primera de la Ley de Economía Sostenible por los siguientes motivos:



1 -Viola los derechos constitucionales en los que se ha de basar un estado democrático en especial la presunción de inocencia, libertad de expresión, privacidad, inviolabilidad domiciliaria, tutela judicial efectiva, libertad de mercado, protección de consumidoras y consumidores, entre otros.



2 - Genera para la Internet un estado de excepción en el cual la ciudadanía será tratada mediante procedimientos administrativos sumarísimos reservados por la Audiencia Nacional a narcotraficantes y terroristas.



3 - Establece un procedimiento punitivo “a la carta” para casos en los que los tribunales ya han manifestado que no constituían delito, implicando incluso la necesidad de modificar al menos 4 leyes, una de ellas orgánica. Esto conlleva un cambio radical en el sistema jurídico y una fuente de inseguridad para el sector de las TIC (Tecnología de la Información y la Comunicación). Recordamos, en este sentido, que el intercambio de conocimiento y cultura en la red es un motor económico importante para salir de la crisis como se ha demostrado ampliamente



4 - Los mecanismos preventivos urgentes de los que dispone la ley y la judicatura son para proteger a toda ciudadanía frente a riesgos tan graves como los que afectan a la salud pública. El gobierno pretende utilizar estos mismos mecanismos de protección global para beneficiar intereses particulares frente a la ciudadanía. Además la normativa introducirá el concepto de "lucro indirecto", es decir: me pueden cerrrar el blog porque "promociono" a uno que "promociona" a otro que enlaza a un tercero que hace negocios presuntamente ilícitos.



5 - Recordamos que la propiedad intelectual no es un derecho fundamental contrariamente a las declaraciones del Ministro de Justicia, Francisco Caamaño. Lo que es un derecho fundamental es el derecho a la producción literaria y artística.



6 - De acuerdo con las declaraciones de la Ministra de Cultura, esta disposición se utilizará exclusivamente para cerrar 200 webs que presuntamente están atentando contra los derechos de autor. Entendemos que si éste es el objetivo de la disposición, esta no es necesaria, ya que con la legislación actual existen procedimientos que permiten actuar contra webs, incluso con medidas cautelares, cuando presuntamente se esté incumpliendo la legalidad. Por lo que no queda otra opción sino recelar de las verdaderas intenciones que la motivan ya que lo único que añade a la legislación actual es el hecho de dejar la ciudadanía en una situación de grave indefensión jurídica en el entorno digital.



7 - Finalmente, consideramos que la propuesta del gobierno no sólo es un despilfarro de recursos sino que será absolutamente ineficaz en sus presuntos propósitos y deja patente la absoluta incapacidad por parte del ejecutivo de entender los tiempos y motores de la Era Digital.



La disposición es una concesión más a la vieja industria del entretenimiento en detrimento de los derechos fundamentales de la ciudadanía en la era digital.



La ciudadanía no puede permitir de ninguna manera que sigan los intentos de vulnerar derechos fundamentales de las personas, sin la debida tutela judicial efectiva, para proteger derechos de menor rango como la propiedad intelectual. Dicha circunstancia ya fue aclarada con el dictado de inconstitucionalidad de la Ley Corcuera (o "Ley de patada en la puerta").



El Manifiesto en defensa de los derechos fundamentales en Internet, respaldado por más de 200 000 personas, ya avanzó la reacción y demandas de la ciudadanía ante la perspectiva inaceptable del gobierno.



Para impulsar un definitivo cambio de rumbo y coordinar una respuesta conjunta, el 9 de enero se ha constituido la "Red SOStenible" una plataforma representativa de todos los sectores de la sociedad civil afectados. El objetivo es iniciar una ofensiva para garantizar una regulación del entorno digital que permita expresar todo el potencial de la Red y de la creación cultural respetando las libertades fundamentales.



En este sentido, reconocemos como referencia para el desarrollo de la era digital, la Carta para la innovación, la creatividad y el acceso al conocimiento, un documento de síntesis elaborado por más de 100 expertos de 20 países que recoge los principios legales fundamentales que deben inspirar este nuevo horizonte.



En particular, consideramos que en estos momentos es especialmente urgente la implementación por parte de gobiernos e instituciones competentes, de los siguientes aspectos recogidos en la Carta para la innovación, la creatividad y el acceso al conocimiento:



1 - Las/os artistas como todos los trabajadores tienen que poder vivir de su trabajo (referencia punto 2 Demandas legales, párrafo B. "Estímulo de la creatividad y la innovación", de la Carta);



2 - La sociedad necesita para su desarrollo de una red abierta y libre (referencia punto 2 "Demandas legales", párrafo D "Acceso a las infraestructuras tecnológicas", de la Carta);



3 - El derecho a cita y el derecho a compartir tienen que ser potenciado y no limitado como fundamento de toda posibilidad de información y constitutivo de todo conocimiento (referencia punto 2 "Demandas legales", párrafo A "Derechos en un contexto digital", de la Carta);



4 - La ciudadanía debe poder disfrutar libremente de los derechos exclusivos de los bienes públicos que se pagan con su dinero, con el dinero publico (referencia punto 2 "Demandas legales", párrafo C "Conocimiento común y dominio público", de la Carta);



5 - Consideramos necesaria una reforma en profundidad del sistema de las entidades de gestión y la abolición del canon digital (referencia punto 2 Demandas legales", párrafo B. "Estímulo de la creatividad y la innovación", de la Carta).



Por todo ello hoy se inicia la campaña INTERNET NO SERA OTRA TELE y se llevarán a cabo diversas acciones ciudadanas durante todo el periodo de la presidencia española de la UE.



Consideramos particularmente importantes en el calendario de la presidencia de turno española el II Congreso de Economía de la Cultura (29 y 30 de marzo en Barcelona), la Reunión Informal de ministros de Cultura (30 y 31 de marzo en Barcelona) y la reunión de ministros de Telecomunicaciones (18 a 20 de abril en Granada).



La Red tiene previsto reunirse con representantes nacionales e internacionales de partidos políticos, representantes de la cultura y legaciones diplomáticas.



Firmado



Red SOStenible



http://Red-SOStenible.net



La Red Sostenible somos todos/as. Si quieres adherirte a este texto, cópialo, blogguéalo, difúndelo.

martes, 14 de diciembre de 2010

Impersonalización y .net Framework .4

Sintomas:
Cuando en .net framework 4 usamos la impersonalización

Podemos recibir errores que van desde
No se puede cargar el archivo o ensamblado 'AjaxControlToolkit' ni una de sus dependencias. Acceso denegado.
hasta:
La identitad actual  (dominio\usuario) no tiene derechos de escritura en 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files.'
pasando por un mensaje tan significativo como
Líneas de código fuente no relevantes


Solución:
En muchos foros se recomienda darle permisos full control o lectura escritura al usuario en este directorio.
En producción (Windows server 2008 R2 con IIS7.5 yo he preferido añadir al usuario en cuestión en el grupo IIS_IUSR.
En cuanto al servidor de desarrollo sigo pegandome con ello, aunque puedo trabajar sin el impersonate.
Comentario:
Como dicen en: http://www.devjoker.com/contenidos/catss/454/Liacuteneas-de-coacutedigo-fuente-no-relevantes.aspx

"Es mejor no decir el tiempo que se pierde con estas tonterías."

martes, 30 de noviembre de 2010

La busqueda no funciona en Sharepoint Foundation (y versiones anteriores)

Sintomas:
En uno de tus sitios no funciona la busqueda y tienes un error como este:
No se puede rastrear la dirección de inicio sts4://sede.ascer.es/contentdbid={dcfdf837-58f4-432e-856f-6318f2fe8ff6}.
Contexto: aplicación 'Archivo_de_índice_de_búsqueda_en_el_servidor_de_búsqueda', catálogo 'Search'
Detalles:
Acceso denegado. Compruebe si la cuenta predeterminada de acceso al contenido tiene acceso a este repositorio, o bien agregue una regla de rastreo para rastrear este repositorio. Si el repositorio rastreado es un repositorio SharePoint, compruebe si la cuenta usada tiene permisos completos de lectura en la aplicación web de SharePoint que se está rastreando. (0x80041205)
Resolución:
Comprueba que puedes acceder al sitio en cuestión desde la maquina que lo aloja. En caso negativo es muy posible que este relacionado con la protección contra loopbak del IIS
Mira este vinculo para ver como resolverlo:
http://support.microsoft.com/kb/971382/en-us

viernes, 26 de noviembre de 2010

Visualizar mi calendario de Exchange desde Sharepoint (versiones 2010)

Problema:
Acceder a un calendario almacenado en Exchange Server (Outlook) desde SharePoint.
Solución:
Crear un calendario
Viendo el calendario ir a Calendario/Superposición de calendarios (overlay).
Añadir el calendario.
Mas detalles en:
http://office.microsoft.com/en-us/sharepoint-foundation-help/work-with-multiple-exchange-and-sharepoint-calendars-in-one-sharepoint-calendar-HA101777171.aspx
Mas problema:
Una vez hecho esto al sincronizar podemos tener dos problemas relacionados con el OWA.
a)  No se puede establecer una relación de confianza con el canal TTL /SSL (Could not establish trust relationship for the SSL/TLS secure channel with authority).
b)Para autenticarse el sitio OWA utiliza HTTP mientras que SharePoint require NTLM.
Todo esto puede estar relacionado con que publicas el OWA mediante forefront TMG con un certificado de terceros.
Lo mejor si tienes los servidores en tu red privada es que utilices la url interna.
En mi caso redirigía a la url externa por lo que tuve que usar el mandato:
set-OwaVirtualDirectory -identity "owa(Default Web Site)"  redirecttooptimalOWAServer=false
Aun así cada dos por tres cambia la url por la pública.
En cualquier caso el problema a) se resuelve configurando sharepoint para que confie en la autoridad raiz del certificado público de OWA.
Otro problema que suge es que solo ves ocupado o libre, la solución está en dar permisos al usuario por defecto para que pueda ver el asunto (los permisos los das desde Outlook o con GPOs)
A dia de hoy (Noviembre 2010) no se puede acceder a otros calendarios como pueden ser los recursos