[C#] OWIN 시작 클래스가 없습니다

프로젝트에서 OWIN시작 클래스에 대한 참조를 찾을 수 없어서이 오류가 발생 합니다. Nuget을 통해 모든 OWIN 참조 패키지를 설치했지만 여전히 동일한 문제가 발생합니다. 그리고를 사용 Visual Studio 2012하고 MVC4있습니다.

앱을로드하는 중 다음 오류가 발생했습니다.

  • OwinStartupAttribute를 포함하는 어셈블리를 찾을 수 없습니다.
  • Startup 또는 [AssemblyName] .Startup 클래스를 포함하는 어셈블리를 찾을 수 없습니다. OWIN 시작 검색을 비활성화하려면 web.config에서 appSetting owin : AutomaticAppStartup 값을 “false”로 추가하십시오. OWIN 시작 어셈블리, 클래스 또는 메소드를 지정하려면 web.config에서 완전한 시작 클래스 또는 구성 메소드 이름으로 appSetting owin : AppStartup을 추가하십시오.


답변

이름 시작으로 하나의 클래스를 만들면 도움이됩니다 ..

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


답변

우리 프로젝트에서는 OWIN 기능이 필요하지 않았으므로 초기 ASP.NET MVC 템플릿 프로젝트에서 모든 owin 참조를 제거했습니다. OWIN 시작 클래스를 제거한 후 문제가 발생했습니다.

문제는 내 bin 폴더에 여분의 owin dll이었습니다. 삭제하면 문제가 해결되었습니다. bin 폴더를 삭제하여 삭제해야합니다. 클린 솔루션 은 이러한 dll을 삭제하지 않습니다.

어떻게 든 IIS는 여전히 bin 폴더에있을 때 OWIN dll을 실행합니다.


답변

Visual Studio 2013 RC2에는이를위한 템플릿이 있습니다. App_Start 폴더에 추가하십시오.

여기에 이미지 설명을 입력하십시오

템플릿은 다음과 같은 클래스를 생성합니다.

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
        }
    }
}


답변

OWIN 시작을 사용하지 않으려면 다음을 web.config 파일에 추가해야 합니다.

AppSettings 아래 에 다음 줄을 추가하십시오.

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

이것은 web.config에서 다음과 같이 보일 것입니다.

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


답변

Startup.cs파일을 찾으십시오 .이 중 하나가 누락되었을 수 있습니다. 이 파일은 OWIN의 진입 점이므로 누락 된 것 같습니다. OWIN Startup class무슨 일이 일어나고 있는지 이해하려면 여기를 살펴보십시오 .

오류가 지정하면 다음을 수행하여 web.config에서 이것을 비활성화 할 수 있습니다 …

OWIN 시작 검색을 비활성화하려면 web.config에서 appSetting owin : AutomaticAppStartup 값을 “false”로 추가하십시오.


답변

먼저 시작 파일을 작성하고 web.config에서 appSettings 태그 안에 다음 줄로이 파일의 로케일을 지정해야합니다.

<add key="owin:AppStartup" value="[NameSpace].Startup"/>

내 문제를 해결했습니다.


답변

나는이 문제가 있었고, 이것이 OP의 경우에 잘못된 것이 아니라는 것을 이해하지만 내 경우에는 Startup 클래스가 있었지만 기본적으로 찾지 못했습니다.

내 문제는 어셈블리 이름에 공백이있어서 기본 네임 스페이스가 어셈블리 이름과 다르므로 시작 클래스의 네임 스페이스가 어셈블리 이름과 다릅니다.

오류에서 알 수 있듯이 규칙에 따라 [Assembly Name] .Classup for Startup …을 찾습니다. 따라서 Startup 클래스의 네임 스페이스가 Assembly 이름과 동일한 지 확인하십시오. 나를 위해 문제를 해결했습니다.