Tuesday, May 29, 2007

Procesos de larga duración en VS 2005

Cuando se está depurando una aplicación en VS 2005 y se ejecuta un proceso de larga duración sin procesar los mensajes puede que se despliegue el siguiente error:

ContextSwitchDeadlock was detected
Message: The CLR has been unable to transition from COM context 0x1b3f78 to COM context 0x1b40e8 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.

Para evitar que se muestre este error existen dos formas:

1. En Visual Studio vaya a “Debug” -> “Exceptions…”
Managed Debugging Assistants, deseleccione ContextSwitchDeadlock

2. Haga el siguiente cambio en el registry

[HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFramework] "MDA"="0"

Tuesday, May 15, 2007

Error compilando en VS 2005

Algunas veces hay problemas cuando compila una aplication y se despliega el error GenericResource error, ese es un problema con la compilación de los archivos de recursos, para evitar eso incluya la siguiente entrada en el archivo de proyecto, abralo con NotePad


< GenerateResourceNeverLockTypeAssemblies> true < / GenerateResourceNeverLockTypeAssemblies >

Esto tiene que ir después del grupo < PropertyGroup >

Tuesday, May 08, 2007

Donde se guardar los archivos de Automatic Updates

Los archivos del automatic updates se guardan en la siguiente ruta C:\WINDOWS\SoftwareDistribution\Download\

Monday, May 07, 2007

Configurar Forms Authentication en Project Server 2007

Para habilitar Forms Authentication en Project Server 2007 se debe seguir los siguientes pasos:

1. Primero crear la base de datos en donde se va a guardar la configuración de los usuarios. Para hacerlo ejecute el siguiente comando
\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -A m -E

2. Verifique que el usuario con el cual va a ejecutar el Application Pool del sitio de Project Server con Forms Authentication tiene los derechos apropiados dentro de la base de datos aspnetdb que se creó con el script anterior.

3. Se debe extender el sitio actual de PWA con un nuevo WebSite en el cual se brindara el servicio de Forms Authentication


a. Abrir SharePoint 3.0 Central Administration.

b. En Application Management tab, seleccione Create or extend Web application.

c. Despues Extend an existing Web Application.

d. Elija la aplicacion que desea extender, por ejemplo Default Web Site, de click en OK.

e. Seleccione Create a new IIS web site.

f. Cambie el numero de puerto por que desea.

g. El Balance URL es la direccion con la cual ingresan los usuarios de Form Authentication, puede incluir un Header si lo desea.

h. Click OK.


4. Configure el web site para utilice Forms Autentication


a. Application Management page, click Authentication providers.

b. EnIntranet Zone, click Windows link.

c. En Authentication Type, seleccione Forms.

d. En Membership provider digite: AspNetSqlMembershipProvider

e. Click en Save.

5. Modifique el web.config del sitio de PWA con Forms Authentication y de Windows Autentication para incluir la siguiente entrada, despues de ConfigSections

< connectionStrings >

< remove name="LocalSqlServer" />

< add name="LocalSqlServer" connectionString="data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb" />

< /connectionStrings>

6. Ahora esta configurado en nuevo provider, falta crear usuarios de ASP.net lo puede hacer este procedimiento almacenado, en la BD creada anteriormente

declare @now datetime
set @now= GETDATE()
exec aspnet_Membership_CreateUser '/', 'usuario','password','','email@project.com','','',1,@now, @now, 0,0,null

7. Tambien puede crear un XML y utiliza el utilitario
PjFormsAuthUpgrade.exe para incluirlos, la default location es Program Files\Microsoft Office Servers\12.0\Bin).


PjFormsAuthUpgrade.exe -log forms.log –url http://localhost/pwa -usersfile users.xml

El archivo XML puede ser

< ?xml version="1.0"? >

< Users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/Project/Users.xsd" >
< CreateUser >

< DisplayName > Eduardo Castro < / DisplayName >

< EmailAddr > edocastro@correo.com < / EmailAddr >

< LogonName > ecastro < / LogonName >

< Password > p@ssword1 < / Password >

< Guid > ab3ad5fe-6b56-41e8-a9d8-44af71b91dc4 < / Guid >

< PasswordQuestion > Pregunta password< / PasswordQuestion >

< PasswordAnswer > Respuesta < / PasswordAnswer >

< / CreateUser >

< / Users >


Recuerde que puede agregar más usuarios en el XML lo único que tiene que hacer es asegurarse que el GUID sea distinto. Puede usar este utilitario para crear GUIDs http://msdn2.microsoft.com/en-us/library/ms241442(VS.80).aspx

8. Ahora que ya tiene un usuario lo puede agregar desde PWA como un usuario de Project Server y darle los derechos necesarios, recuerde que el nombre del usuario tiene que ser en formato AspNetSqlMembershipProvider:ecastro y el tipo de autenticacion es Forms Authenticaion




9. Ahora pruebe su aplicacion.

Thursday, May 03, 2007

You receive an HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials

Si se recibe este error, es un problema con el envio de tiquetes de kerberos, y es debido a que el application pool esta corriendo bajo una credencial de usuario de dominio. Para arreglar ejecute los siguientes comandos.

setspn.exe -a http/IIS_computer's_NetBIOS_name DomainName\UserName

setspn.exe -a http/IIS_computer's_FQDN DomainName\UserName

SQL Server 2016 Stretch Databases

El SQL Server Stretch Database permite que los datos históricos o de bitácoras puedan ser movidos hacia Azure, específicamente permite mover...