OWIN Startup Class Missing

Recibo este error porque mi proyecto no puede encontrar la referencia para la clase de inicio de OWIN . Incluso instalé todos los paquetes de referencia de OWIN a través de Nuget, obteniendo el mismo problema. Estoy usando Visual Studio 2012 y MVC4 .

Se produjeron los siguientes errores al intentar cargar la aplicación.

  • No se encontró ningún ensamblaje que contenga un OwinStartupAttribute.
  • No se encontró ningún ensamblaje que contenga una clase Startup o [AssemblyName] .Startup. Para deshabilitar el descubrimiento de inicio de OWIN, agregue el conjunto de aplicaciones owin: AutomaticAppStartup con un valor de “falso” en su web.config. Para especificar el ensamblado, la clase o el método de inicio de OWIN, agregue el conjunto de aplicaciones: AppStartup con la clase de inicio totalmente calificada o el nombre del método de configuración en su web.config.

Crear una clase con inicio de nombre esto lo ayudará a …

 public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } } 

En nuestro proyecto, no necesitábamos la funcionalidad OWIN, por lo que eliminamos todas las referencias owin del proyecto inicial de la plantilla ASP.NET MVC. El problema ocurrió después de eliminar la clase de inicio de OWIN.

El problema era el dll extra owin en mi carpeta bin. Cuando los borré, el problema se resolvió. Debe eliminarlos eliminando la carpeta bin. Clean Solution no elimina estos dlls.

De alguna manera, IIS aún ejecuta los dll de OWIN cuando están en la carpeta bin.

En Visual Studio 2013 RC2, hay una plantilla para esto. Solo agrégalo a la carpeta App_Start.

enter image description here

La plantilla produce dicha clase:

 using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(WebApiOsp.App_Start.Startup))] namespace WebApiOsp.App_Start { public class Startup { public void Configuration(IAppBuilder app) { // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888 } } } 

Si no desea utilizar el inicio de OWIN, esto es lo que debe agregar a su archivo web.config :

En AppSettings agrega la siguiente línea:

   

Así es como debe verse en su web.config:

     

Busque el archivo Startup.cs , es posible que le falte uno de estos. Este archivo es el punto de entrada para OWIN, por lo que parece que falta esto. Eche un vistazo a la OWIN Startup class aquí para entender qué está pasando.

Como especifica su error, puede deshabilitar esto en el archivo web.config haciendo lo siguiente …

Para deshabilitar el descubrimiento de inicio de OWIN, agregue el conjunto de aplicaciones owin: AutomaticAppStartup con un valor de “falso” en su web.config

Primero debe crear su archivo de inicio y luego debe especificar la configuración regional de este archivo en web.config, dentro de la etiqueta appSettings con esta línea:

Solucionó mi problema.

Tuve este problema, entiendo que esto no es lo que estaba mal en el caso del OP, pero en mi caso sí tenía una clase de inicio, simplemente no la encontraba por defecto.

Mi problema era que tenía espacios en mi nombre de ensamblado y, por lo tanto, el espacio de nombre predeterminado era diferente del nombre del ensamblado, por lo tanto, el espacio de nombre para la clase de inicio era diferente del nombre del ensamblado.

Como sugiere el error, por convención busca [Assembly Name] .Startup para la clase … así que asegúrese de que el espacio de nombres para su clase Startup sea el mismo que el del Assembly. Solucionado el problema para mí.

Intenté la mayoría de las correcciones recomendadas aquí, y todavía no pude evitar el mensaje de error. Finalmente realicé una combinación de algunas soluciones recomendadas:

  1. AppSettings esta entrada a la parte superior de la sección AppSettings de mi web.config :

  2. Expandí el nodo Referencias de mi proyecto y OWIN todo lo que contenía la cadena OWIN . (Me sentí seguro al hacerlo porque mi organización no es (y no será) un proveedor activo de OWIN en el futuro)

Luego hice clic en Run y mi página de inicio se cargó.

¿Mi caso? Tenía un archivo de inicio, pero está excluido en el proyecto. Acabo de incluirlo y el error se fue.

En mi caso, he cambiado el nombre del proyecto y he cambiado su estructura de carpetas. Descubrí que la actualización de RootNameSpace y AssemblyName en el archivo .csproj donde se produjo el error resolvió el error. Si ha modificado las rutas de su proyecto, le recomiendo que revise esto también.

 Company.Product.WebAPI Company.Product.WebAPI 

También es posible obtener esta excepción (incluso si tiene una clase de inicio correctamente configurada) si se ejecuta a través de IIS Express y su directorio virtual no está configurado correctamente.

Cuando encontré este problema, la resolución fue simplemente presionar el botón “Crear directorio virtual” en la pestaña “Web” de las propiedades del proyecto (usando Visual Studio 2013)

Esto también podría enfrentarse en Visual Studio 2015 cuando utilice Azure AD con un proyecto MVC. Aquí crea el archivo de inicio como Startup.Auth.cs en la carpeta App_Start, pero le faltará el

 [assembly: OwinStartup(typeof(D_ToolsWebApp.Startup))] 

Así que agrégalo y deberías ser bueno para ir. Esto va antes de que comience el espacio de nombres.

Si bien no puedo explicar por qué esto me solucionó el problema, me encontré con un problema como este después de que cambié mi proyecto API para comstackr para separar las carpetas \debug y \release . Una vez que revertí ese cambio para comstackrlo en una única carpeta \bin cosas empezaron a funcionar.

Escribí mi experiencia aquí: No se puede ejecutar la clase de inicio OWIN en IIS Express después de cambiar el nombre del archivo de proyecto ASP.NET

Me encontré con este problema después de experimentar con SignalR y luego eliminarlo del proyecto. Para resolver, tuve que eliminar el contenido de la carpeta bin para el sitio en el servidor remoto y luego publicar de nuevo.

¿Estás realmente tratando de agregar OWIN a tu proyecto o es algo inesperado?

  1. En caso de que quiera agregar OWIN, agregar una clase de inicio es el camino a seguir.

  2. En caso de que no necesite ninguna referencia a Owin :

    elimine Owin.dll de su carpeta / bin .

    Owin.dll es el que intenta identificar la clase de inicio.

Simplemente verifique que su archivo packages.config esté registrado (cuando se excluya, aparecerá un símbolo rojo de no entrada en el explorador). Por alguna extraña razón, la mía fue excluida y causó este problema.

Obtuve el mismo error cuando comencé mi proyecto usando el Panel de navegación del navegador en VS2013. Pero, cuando ejecuté mi proyecto en modo de depuración, funcionaría. No pude entender por qué y cómo hacer funcionar el Panel de navegación del enlace. Revisé el archivo de inicio, estuvo bien, agregué la línea de configuración de la aplicación como se describe en algunas de las respuestas “”, pero nada funcionó.

Aparentemente, lo que estaba haciendo mal era hacer clic en el enlace INCORRECTO en el Panel del navegador. Todos los enlaces de proyectos de Soluciones se muestran en el Panel del navegador, pero solo funciona el enlace de proyectos de inicio. Debe hacer clic en el enlace del proyecto de inicio.

Ejemplo: Tengo 2 proyectos, ambos se muestran en el Panel del navegador, pero solo funcionará el marcado como proyecto de inicio (se muestra en negrita en el Explorador de soluciones). Pensé que esto podría ayudar a alguien a hacer lo obvio, me costó 2 días para tropezar con lo obvio.

Tuve este problema cuando recibí lo último en TFS, mientras que otros proyectos estaban abiertos en varias instancias de VS. Ya tengo todas las soluciones anteriores. La reapertura VS solucionó el problema.

En mi caso, inicié sesión en el servidor ftp. Tomó una copia de seguridad de los archivos actuales en el servidor ftp. Borre todos los archivos manualmente desde el servidor ftp. Solución limpia, redesplegó el código. Funcionó.