Nenhum assembly encontrado contendo um erro OwinStartupAttribute

87

Esse erro

Os erros a seguir ocorreram ao tentar carregar o aplicativo. - Nenhum assembly encontrado contendo um OwinStartupAttribute. - O tipo ou método fornecido 'falso' não foi encontrado. Tente especificar a montagem. Para desabilitar a descoberta de inicialização OWIN, adicione appSetting owin: AutomaticAppStartup com um valor "false" em seu web.config. Para especificar o Assembly, classe ou método de inicialização OWIN, adicione o appSetting owin: AppStartup com a classe de inicialização totalmente qualificada ou o nome do método de configuração em seu web.config.

aparece na minha tela na página de erro mais feia já criada na história.

insira a descrição da imagem aqui

Tentei seguir as instruções da página inserindo o owin: AutomaticAppStartup na configuração.

 <appSettings >
    <add key="owin:AppStartup" value="false"></add>
        </appSettings>

isso não corrigiu o problema. Alguma sugestão?

NVA
fonte
6
Em vez de <add key="owin:AppStartup" value="false"></add>tentar <add key="owin:AutomaticAppStartup" value="false"></add>ver se funciona? Além disso, alguns links para ajudar: OWIN Startup Class Detection e Owin fornecem classe de inicialização em web.config (sem descoberta de inicialização automática)
Keyur PATEL
Isso funcionou. Também obrigado pelos recursos. Minha gratidão @KeyurPATEL.
NVA
2
Acho que está faltando o arquivo startup.cs
Kurkula
2
Kurkula está absolutamente certo. Você não instalou o sistema de autenticação ASP.net apenas para jogá-lo fora na inicialização. Você está absolutamente perdendo o arquivo startup.cs na raiz do projeto. Coloque este código no arquivo .------------- usando Microsoft.Owin; using Owin; [assembly: OwinStartupAttribute (typeof (YOURPROJECT.Startup))] namespace YOURPROJECT {inicialização de classe pública parcial {public void Configuration (IAppBuilder app) {ConfigureAuth (app); }}}
Paras Parmar

Respostas:

171

Adicione este código web.configsob a <configuration>tag conforme mostrado na imagem abaixo. Seu erro deve então desaparecer.

<configuration>
  <appSettings>
    <add key="owin:AutomaticAppStartup" value="false" />
  </appSettings>
  ...
</configuration>

Verifique a imagem abaixo

Heemanshu Bhalla
fonte
4
Essa é a solução, ou pelo menos essa solução resolveu meu problema. Marque uma resposta como solução. Este deve estar no topo ...
Mason
1
Obrigado, Isso funcionou, mas alguém pode me dizer o que estou perdendo ao tornar esse valor de configuração falso?
IKriKan
83

Eu queria me livrar do OWIN no projeto:

  1. Excluir referências OWIN e pacotes Nuget do projeto
  2. Projeto de limpeza e reconstrução
  3. Executar aplicativo

Então eu obtive o erro OWIN. Essas etapas não funcionaram, porque OWIN.dll ainda estava no diretório bin / .

CONSERTAR:

  1. Excluir bin / diretório manualmente
  2. Reconstruir projeto
one_mile_run
fonte
12
lol - excluir as pastas bin e obj é sempre a correção para erros de dependência estranhos
matt.fc
4
Eu já havia baixado e testado o nuget SignalR, que por sua vez tinha adicionado o nuget owin. Os pacotes foram excluídos, mas eu também tive que excluir a pasta bin para fazê-lo funcionar.
mortb
Vim aqui após instalar o SignalR e abortar o esforço. Obrigado.
John Gerdsen
Fácil e rápido. Trabalhou para mim
Dash
desinstalar o pacote owin também ajudará ou remover todas as dlls que têm o owin com eles das referências ajudará
Heemanshu Bhalla
23

Para aqueles que querem começar, <add key="owin:AutomaticAppStartup" value="false" />não vai funcionar, mas o seguinte funcionou para mim.

  1. se você tiver uma classe parcial "Startup" em seu arquivo Startup.Auth, crie outra classe parcial de Startup na raiz do seu projeto.

  2. definir um atributo de montagem owinstartup apontando para essa classe

  3. crie um método de "Configuração"

  4. reconstruir seu aplicativo

Você também pode criar o método "Configuration" e adicionar o atributo assembly ao Startup.Auth, mas fazer isso dessa forma permite que você mantenha sua classe de inicialização separada, aproveitando a divisão da definição de classe C #. Leia mais aqui: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods

Esta é a aparência do meu arquivo Startup.cs:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(ProjectNameSpace.Startup))]

namespace ProjectNameSpace
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}
Robthedev
fonte
Isso funcionou para mim, percebi que isso acontece quando o projeto tem um ponto no nome. Portanto, se o namespace for como "namespace ProjectNameSpace.ApiRest", definir um assembly como em seu exemplo corrige o problema.
Karique
6

você pode não ter o método de configuração na classe que mencionou em

<appSettings>
<add key="owin:AppStartup" value="WebApplication1.App_Start.Startup"/>

Nattachai Suteerapongpan
fonte
3

Recebi este erro porque havia um espaço em branco extra no código

Ao invés de

<add key="owin:AutomaticAppStartup" value="false" />

isso foi

<add key="owin:AutomaticAppStartup " value="false" />

Roshna Omer
fonte
3

Verifique se você tem a classe Startup criada em seu projeto. Isto é um exemplo:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof({project_name}.Startup))]

namespace AuctionPortal
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}
Szdrnja
fonte
Para aproveitar as vantagens da identidade ASP.net. Esta é a solução.
Paras Parmar
2

apenas substituindo

        using (WebApp.Start(url))

com

        using (WebApp.Start<Startup>(url))

resolveu meu problema. A classe chamada Startup já foi implementada. como mencionado acima por @robthedev

Abhay
fonte
2

Adicionar a seguinte chave em Web.config removerá o código

<appSettings>

  <add key="owin:AutomaticAppStartup" value="false" /> 
</appSettings>
Debendra Dash
fonte
1

Verifique se você selecionou o projeto de inicialização correto. Tive um projeto de API da web como inicialização. Isso gerou esse erro.

Wilkoteq
fonte
1

Sei que esta postagem é antiga, mas caso alguém esteja procurando o mesmo erro, tente adicionar

<add key="owin:AutomaticAppStartup" value="false"></add>

depois da etiqueta <appSettings>

e se depois o próximo erro aparecer:

Erro HTTP 401.0 - Mensagem de erro não autorizada

adicione o próximo código após a tag; <system.web>ele pode estar no início

<authentication mode="Forms"> <forms loginUrl="~/YourFolderName/yourFileName" timeout="1" /> </authentication>

No meu caso é:

<authentication mode="Forms"> <forms loginUrl="~/Login/Index" timeout="1" /> </authentication>

Michael
fonte
0

Eu apaguei todas as DLLs do branch que não estava funcionando, então copiei todos os DDls do meu branch que estava funcionando para o meu branch que não estava. Isso resolveu o problema.

Gabriel Girodo Domingos
fonte
0

apenas cole este código <add key="owin:AutomaticAppStartup" value="false" /> em Web.config Não em web.config há dois webconfig, portanto certifique-se de que ele será colado em Web.Config

Gaurav soni
fonte
0

se você quiser usar o sinal, você deve adicionar a classe startup.cs em seu projeto

Clique com o botão direito em seu projeto, em seguida, adicione um novo item e selecione a classe de inicialização OWIN

em seguida, dentro do Método de Configuração Adicionar Código Abaixo

app.MapSignalR();

Espero que seja útil para você

shahram.afshar
fonte
0

Adicione a classe Startup.cs à raiz do projeto com o próximo código:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(ProjectName.Startup))]
namespace ProjectName
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}
José Ignacio Becerra Becerra
fonte
0

Se estiver implantando no Azure e você obter este erro. Simplesmente exclua todos os arquivos do site (faça backup de qualquer web.config, appsettings.json ou o que você não quiser perder) e implante novamente. Existem alguns arquivos dll restantes que não deveriam estar no site, o que faz com que o portal do Azure pense que precisa usar OWIN.

nivs1978
fonte
0

Adicione o código abaixo ao seu arquivo web.config e execute o projeto ...

    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    </runtime>
amit kadam
fonte