He estado trabajando con elementos Web (Web parts) en MOSS 2007 desde que lo utilicé por primera ocasión, y comúnmente mi forma de hacerlo había sido crear un control personalizado ASP. NET (custom control) con toda la funcionalidad deseada y después de que hiciera lo que necesitaba convertir el código a Web Part de MOSS 2007 o sea trabajaba doble. Y seguramente todos ustedes al empezar a trabajar en esta plataforma se han encontrado con el frustrante mensaje de error de "An unexpected error has occurred" o "Error inesperado". Sin embargo, hay una solución muy sencilla que quiero compartirles para evitarse este problemilla y que les sirve para depurar incluso elementos que usen AJAX o Silverlight:
Vayan a web.config y localicen la siguiente línea:
<SafeMode MaxControls=200 CallStack=false
y cambienla por:
<SafeMode MaxControls=200 CallStack=true
...paso siguiente, habiliten la depuración como en cualquier aplicación ASP .NET
<customErrors mode=Off/>
No se olviden de regresar todo a la normalidad, esto no debería quedar así en un ambiente de producción pero para probar y depurar evita muchos dolores de cabeza.