visual studio servidor scripts pudo proyecto proceso para net necesario modo hay habilitar este destino depurar depurador depuración depuracion configurar configuracion conectarse con compilacion cambie asp asociado aplicaciones asp.net sharepoint debugging

studio - ¿Cómo hacer que el proceso de depuración de las aplicaciones Sharepoint de ASP.NET consuma menos tiempo?



para habilitar la depuración de aplicaciones asp net es necesario (8)

Lo estoy comparando con Java, donde puede iniciar su servidor de aplicaciones en modo de depuración, luego conecte su IDE al servidor. Y puede cambiar su código "sobre la marcha" sin reiniciar el servidor. Siempre que sus cambios no afecten a ninguna firma o campo de método, puede presionar recapitular para una clase y el servidor de aplicaciones (contenedor de servlets) volverá a cargar la clase.

Supongo que esto es imposible en ASP.NET ya que todas las clases se empaquetan en ensamblajes y no se pueden descargar / volver a cargar ensamblajes, ¿o sí?

Por lo tanto, cuando tiene una página .aspx y un ensamblado implementado para GAC ​​y los cambios de código subyacente, debe volver a desplegar el ensamblaje y restablecer IIS. Estoy hablando de aplicaciones Sharepoint en particular y no estoy seguro de si tiene que hacer iisreset para ensamblajes privados, pero supongo que usted también.

Así que la mejor manera de depurar páginas aspx con código subyacente sería deshacerse del código subyacente para el momento de la depuración activa y pasar a la página, luego, cuando funcione más o menos, muévala de nuevo a código subyacente. (Esto sería aplicable solo para las páginas de la aplicación en Sharepoint, las páginas del sitio no permiten el código en línea)

¿Cómo aborda la depuración de sus aplicaciones ASP.NET para que consuma menos tiempo?


Y puede cambiar su código "sobre la marcha" sin reiniciar el servidor

Puede lograr esto con ASP.net si crea un proyecto de sitio web (a diferencia de un proyecto de aplicación web). Al utilizar un proyecto de sitio web, puede publicar cambios en los códigos subyacentes sin tener que actualizar nada en el servidor, y el servidor hace la compilación por usted en todos los cambios de código. Mira aquí para más información sobre esto.

Esto también debería resolver sus dificultades con la implementación del ensamblado en el GAC. Como el servidor maneja todas las compilaciones para proyectos de sitios web, no tendrá que volver a desplegar ensamblajes al cambiar los archivos.


Desde el blog de Matt Smiths sobre cómo obtener la depuración de F5 con Sharepoint. Un truco muy bueno.

  1. Cree un proyecto de aplicación web en Visual Studio (Archivo -> Nuevo -> Proyecto -> Aplicación web ASP.Net, no Archivo -> Nuevo -> Sitio web).
  2. Mueva los archivos .csproj y .csproj.user, junto con la carpeta Propiedades, a C: / inetpub / wwwroot / wss / virtualdirectories /, donde es el nombre o número de la aplicación web correspondiente al sitio de SharePoint que desea depurar en.
  3. Adjunte el proyecto a una solución existente (por ejemplo, proyecto STSDEV).
  4. Establecer como proyecto de inicio (haga clic derecho en el nombre del proyecto, "Establecer como proyecto de inicio").
  5. Acceda a las propiedades del proyecto (haga clic derecho en el nombre del proyecto, "Propiedades") y haga clic
  6. En la configuración "Servidores", haga clic en "Usar servidor web IIS", luego ingrese la URL a la aplicación web de SharePoint que desea depurar, por ejemplo, http: // mymachine: 99 .

Lo que parece que intenta hacer es decirle a Sharepoint: "Cuando empiece a depurar en Visual Studio, use la versión de la DLL compilada en el directorio / bin / debug del proyecto en lugar de la versión de la DLL que está registrada en el GAC ". No he resuelto ese problema, pero así es como depuro Sharepoint.

Una máquina desarrolladora es Win2008, IIS 7, MOSS 2007, VisStudio 2008 y WSP Builder instalado. Dentro de VS2008, se agrega un botón para adjuntarlo al proceso w3p.exe, el CÓMO de Andrew se conecta a w3p

El archivo de solución tiene dos proyectos:
* El primer proyecto es el .WSP que despliega todas las páginas de la aplicación, incluida la DLL. Use los elementos de menú de WSPBuilder para manejar la creación e implementación de .WSP.
* Segundo proyecto es para la DLL detrás de las páginas.

Si desea que la DLL se copie al GAC con regularidad, agregue un evento de creación posterior al proyecto de la DLL que copia de / bin / Debug al GAC.

Pero, en estos días, me parece que acabo de volver a compilar la solución y luego implementar .WSP utilizando los elementos del menú y luego iniciar el depurador con el botón. Me lleva una clave F y 3 clics y aproximadamente un minuto para la mayoría de mis proyectos, pero supongo que podría ser más rápido.


Primero, desarrolle en una computadora que ejecuta SharePoint. Preferiblemente, esto significa ejecutar Windows Server 2003 en Virtual PC o VMWare. Esto le permitirá implementar y depurar código de SharePoint directamente, en lugar de tener que copiar archivos entre servidores y usar el depurador remoto.

Use un complemento VS para simplificar el proceso de implementación y depuración. He estado usando WSPBuilder pero creo que hay otros por ahí. WSPBuilder tiene comandos para implementar soluciones, empaquetarlos como WSP y adjuntar su depurador al proceso IIS local. No le permitirá agregar / eliminar ensambles sobre la marcha, pero puede establecer puntos de interrupción y ejecutar código a través de la ventana Inmediato en VS.

Dependiendo de cómo esté configurado su servidor de producción, generalmente es una buena idea desarrollarlo en un servidor con configuraciones de seguridad completas / confiables, incluyendo la prohibición de bloques de código en archivos ASPX . Esto hace que la depuración sea un poco más difícil, pero reduce la cantidad de sorpresas desagradables que tendrá cuando su código finalmente se implemente en producción.


Sí, los ensamblajes privados NO requieren el reinicio del IIS. Por lo tanto, debe simplemente copiar la nueva versión en el directorio Bin de la aplicación y actualizar la página (por ejemplo, mediante el evento de compilación posterior a VS como lo hice). Pero hay algunas compensaciones. Debería disminuir el nivel de confianza en el archivo web.config de la aplicación:

<system.web> ... <trust level="WSS_Medium" originUrl="" /> ... </system.web>

Por cierto. No sugiero desplegar de esta manera. Es solo una solución para la comodidad de la duración del ciclo de prueba-prueba-depuración.


Si está utilizando GAC, al menos puede hacer iisapp.vbs /a "App Pool Name" /r lugar de iisreset (es más rápido reciclar un solo grupo de aplicaciones que reiniciar IIS).


Use un marco de prueba automatizado (NUnit) para escribir pruebas de integración. Esto no funcionará para todo, pero, por supuesto, depende de lo que esté probando.

Si también tiene TestDriven.NET instalado, puede ejecutar pruebas individuales con el depurador . Esto ha sido útil.


WSPBuilder Extensions tiene un atajo de "implementar en GAC", desafortunadamente nunca funciona para mí. Pero es una manera muy rápida de codificar-> compilar-> probar.

Si no está utilizando extensiones de WSPBuilder, en su lugar puede abrir un símbolo del sistema y ejecutar

gacutil / u yourassemblynamegoeshere gacutil / i yourdllgoeshere.dll

Si haces esto a menudo, puedes ponerlo en un evento posterior a la creación o en un archivo por lotes. Además, no estoy seguro de si el gacutil / u (para eliminar el DLL primero) es necesario.