c# - visual - Falta la clase de inicio OWIN
mvc 5 visual studio 2015 (19)
¿Mi caso? Tuve el archivo de inicio, pero está excluido en el proyecto. Acabo de incluirlo y el error se fue.
Recibo este error ya que mi proyecto no puede encontrar la referencia para la clase de inicio OWIN
. Incluso he instalado todos los paquetes de referencia de OWIN a través de Nuget que todavía tienen el mismo problema. Estoy usando Visual Studio 2012
y MVC4
.
Ocurrieron los siguientes errores al intentar cargar la aplicación.
- No se ha encontrado ningún ensamblaje que contenga un OwinStartupAttribute.
- No se ha encontrado ningún ensamblaje que contenga una clase Startup o [AssemblyName] .Startup. Para deshabilitar el descubrimiento de inicio de OWIN, agregue el appSetting owin: AutomaticAppStartup con un valor de "falso" en su web.config. Para especificar el ensamblaje, la clase o el método de inicio de OWIN, agregue appSetting owin: AppStartup con la clase de inicio completamente calificada o el nombre del método de configuración en su web.config.
¿Realmente estás tratando de agregar OWIN a tu proyecto o es algo inesperado?
En caso de que desee agregar OWIN, agregar una clase de inicio es el camino a seguir.
En caso de que no necesite ninguna referencia a Owin :
borre Owin.dll de su carpeta / bin .
Owin.dll es el que intenta identificar la clase de inicio.
Crea una clase con nombre de inicio, esto te ayudará ...
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
Eche un vistazo al archivo Startup.cs
, es posible que falte uno de estos. Este archivo es el punto de entrada para OWIN, por lo que parece que falta. Echa un vistazo a la asp.net/aspnet/overview/owin-and-katana/… aquí para entender qué está pasando.
Como su error especifica, puede deshabilitar esto en el archivo .config haciendo lo siguiente ...
Para deshabilitar el descubrimiento de inicio de OWIN, agregue el appSetting owin: AutomaticAppStartup con un valor de "falso" en su web.config
En Visual Studio 2013 RC2, hay una plantilla para esto. Solo agrégalo a la carpeta App_Start.
La plantilla produce tal 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
}
}
}
En mi caso he iniciado sesión en el servidor ftp. Tomó copia de seguridad de los archivos actuales en el servidor ftp. Eliminar todos los archivos manualmente desde el servidor ftp. Solución limpia, redistribuido el código. Funcionó.
En mi caso, había cambiado el nombre del proyecto y cambiado su estructura de carpetas. Encontré que la actualización de RootNameSpace y AssemblyName en el archivo .csproj donde se estaba produciendo el error resolvió el error. Si ha modificado las rutas de su proyecto, le recomiendo que compruebe esto también.
<RootNamespace>Company.Product.WebAPI</RootNamespace>
<AssemblyName>Company.Product.WebAPI</AssemblyName>
En nuestro proyecto, no necesitábamos la funcionalidad OWIN, por lo que eliminamos todas las referencias de owin del proyecto de plantilla MVC de ASP.NET inicial. El problema ocurrió después de eliminar la clase de inicio OWIN.
El problema fue el dll owin extra en mi carpeta bin. Cuando los borré, el problema se resolvió. Debe eliminarlos eliminando la carpeta bin. Solución limpia no elimina estos archivos DLL.
De alguna manera, IIS aún ejecuta los archivos DLL de OWIN cuando están en la carpeta bin.
Esto se podría enfrentar también en Visual Studio 2015 cuando usa Azure AD con un proyecto MVC. Aquí crea el archivo de inicio como Startup.Auth.cs en la carpeta App_Start, pero faltará la
[assembly: OwinStartup(typeof(D_ToolsWebApp.Startup))]
Así que agrégalo y deberías estar listo para ir. Esto va antes de que comience el espacio de nombres.
Intenté la mayoría de las correcciones recomendadas aquí, y aún así no pude evitar el mensaje de error. Finalmente realicé una combinación de algunas soluciones recomendadas:
AppSettings
esta entrada a la parte superior de la sección deAppSettings
de aplicación de mi web.config :<add key="owin:AutomaticAppStartup" value="false"/>
Expandí el nodo Referencias de mi proyecto y
OWIN
todo lo que contenía la cadenaOWIN
. (Me sentí seguro al hacerlo ya que 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ó hasta arriba.
Me encontré con este problema después de experimentar con SignalR y luego eliminarlo del proyecto. Para resolverlo, tuve que eliminar el contenido de la carpeta bin del sitio en el servidor remoto y luego publicar nuevamente.
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:
<add key="owin:AppStartup" value="[NameSpace].Startup"/>
Se solucionó mi problema.
Seguí recibiendo el mismo error cuando comencé mi proyecto utilizando el Panel de enlaces del navegador en VS2013. Pero, cuando ejecuté mi proyecto en modo de depuración, funcionaría. No pude averiguar por qué y cómo hacer que el Panel de enlaces del navegador funcione. Revisé el archivo de inicio, estaba 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. Tienes que hacer clic en el enlace del proyecto de inicio.
Ejemplo: tengo 2 proyectos, ambos se muestran en el Panel del navegador, pero solo el que está marcado como proyecto de inicio funcionará (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.
Si bien no puedo explicar completamente por qué esto me solucionó el problema, me encontré con un problema como este después de que cambié mi proyecto de API para compilar en carpetas separadas /debug
y /release
. Una vez que revertí ese cambio para construir en una sola carpeta /bin
cosas empezaron a funcionar.
Escribí mi experiencia aquí: No puedo hacer que la clase de inicio de OWIN se ejecute en IIS Express después de cambiar el nombre del archivo de proyecto ASP.NET
Si no desea utilizar el inicio de OWIN, esto es lo que debe agregar a su archivo web.config :
Bajo AppSettings agrega la siguiente línea:
<add key="owin:AutomaticAppStartup" value="false" />
Así es como debería verse en tu web.config:
<appSettings>
<add key="owin:AutomaticAppStartup" value="false" />
</appSettings>
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.
También es posible obtener esta excepción (incluso si tiene una clase de inicio configurada correctamente) si ejecuta 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 (utilizando Visual Studio 2013)
Tuve este problema cuando obtuve lo último en TFS mientras que otros proyectos estaban abiertos en varias instancias de VS. Ya tengo todas las correcciones de arriba. Reapertura VS solucionó el problema.
Tuve este problema, entiendo que esto no es lo que estaba mal en el caso del OP, pero en mi caso tuve una clase de inicio, simplemente no lo encontraba por defecto.
Mi problema era que tenía espacios en mi nombre de ensamblaje y, por lo tanto, el espacio de nombres predeterminado era diferente del nombre de ensamblaje, por lo tanto, el espacio de nombres para la clase de inicio era diferente al nombre de ensamblaje.
Como sugiere el error, por convención busca [Nombre del ensamblaje]. Inicio para la clase ... así que asegúrese de que el espacio de nombres para su clase de inicio sea el mismo que el nombre del ensamblado. Arreglado el problema para mi.