OWIN 시작 클래스가 없습니다


226

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

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

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

7
당신은 가지고 있습니까 Startup.cs프로젝트를?
christiandev

4
어셈블리에 OwinStartupAttribute?가 포함되어 있습니까? 귀하의 집회는 Startup또는 [AssemblyName].Startup수업입니까? owin:AutomaticAppStartupweb.config에 "false"값으로 appSetting 을 추가하여 OWIN 시작 검색을 비활성화 했습니까 ? 이 중 하나를 수행했는데 왜 작동하지 않는지 궁금하십니까? 귀하의 질문은 무엇인가?
ta.speot.은 (는)

1
그게 다야. 프로젝트에 새 항목을 추가하려고 할 때 OWIN 시작 클래스가 표시되지 않습니다. 나는 구글에서 너겟을 통해 OWIN 참조를 추가한다고 말했고 나는 똑같이했다. 여전히 클래스를 추가하지 못했습니다.
Krunal Patil

답변:


213

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

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

116
이 외에도 시작 클래스가 기본 네임 스페이스에없는 경우 다음 <appSettings>과 같은 영역에 웹 구성 줄을 추가하십시오 .<add key="owin:AppStartup" value="[NameSpace].Startup" />
Andrew Gray

7
현재 owin을 구성하는 3 가지 방법이 있습니다 : asp.net/aspnet/overview/owin-and-katana/…
Jaider

22
@ 앤드류 회색의 의견뿐만 아니라, 퍼팅 [assembly:OwinStartupAttribute(typeof(Identity_Test.Startup))]으로하는 것은 AssemblyInfo.cs너무 작동합니다.
Achilles

14
그렇지 않으면 Microsoft.Owin.Host.SystemWeb 패키지가 필요합니다. 그렇지 않으면 시작 프로그램이 호출되지 않습니다
rjlopes

7
Startup 클래스의 네임 스페이스 바로 [assembly: OwinStartup(typeof([YourStartupNamespaceName].Startup))]
Minh Nguyen

194

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

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

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


6
나는이 문제도 있었고 참조가 OWIN DLL을 참조하지 않았는지 확인해야했습니다.
해커

2
같은 문제와 같은 해결책. 그러나 필자의 경우 Signalr을 사용하는 하나의 코드 분기와 하나가없는 코드 분기가있었습니다. 분기를 전환 할 때 Signalr dll은 정리 후에도 남아있었습니다. 수동으로 삭제해야했습니다.
Kywillis

3
이 말은 문자 그대로 Visual Studio의 "Clean Solution"을 사용하는 것이 아니라 대부분의 DLL을 삭제하는 것이 아니라 전부는 아닌 bin 폴더를 의미합니다.
Alan Macdonald

1
나를 위해 일한 것은 OWIN 참조를 삭제 한 후 여전히 제대로 작동하지 않는 <add key="owin:AutomaticAppStartup" value="false"/>것이 appSetting 으로 추가 된 것입니다. 이것을 시도하는 사람들에게 조언하지만 여전히 성공하지 못합니다.
LatentDenis

1
이것이 작동하지 않는 사람들을 위해 프로젝트 참조로 이동하는 bin 폴더를 삭제 한 후에도 Owin dll에 대한 참조를 제거하십시오. 필자의 경우 bin 폴더를 삭제했지만 .csproj 파일에 여전히 (사용하지 않은) 참조가 있음을 잊었습니다.
akousmata

104

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

3
VS2015도 이것을 필요로했습니다
Tom Stickel

2
이것은 나를 위해 그것을했습니다-Startup.cs 파일을 만들고 올바르게 채웠지만 App_Start 폴더에 있어야한다는 것을 놓쳤습니다. 내 dev 컴퓨터에서 정상적으로 실행되었지만 한 번 게시되면 오류가 발생했습니다. 감사!
존 피터슨

app.MapSignalR ()을 추가해야합니다. 호출 할 때 구성 (IAppBuilder 응용 프로그램)에, 다른 사람 (404)이 반환된다 YourSite] / signalr
카스퍼 Halvas 젠슨

45

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

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

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

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

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

1
이것은 실제로 완전한 답변 중 하나입니다. web.config 설정에
익숙하지 않다면

25

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

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

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


5
나는 추가 <add key="owin:AutomaticAppStartup" value="false" />받는 <appSettings>그룹과 Startup.cs는 더 이상 필요하지 않았다.
webworm

@webworm, 나는 위에서 언급했다.
christiandev

2
@christiandev 정확히 <add key="owin:AutomaticAppStartup" value="false" />어떻게할까요? 기능이 비활성화됩니까? OWIN 기능을 사용하려면 나중에 앱을 시작해야합니까?
Flo

18

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

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

내 문제를 해결했습니다.


11

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

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

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


1
나는 비슷한 문제가 있었다. 내 프로젝트 이름에는 '-'하이픈이 있었고 VS에 의해 밑줄로 변환되었으므로 네임 스페이스와 시작 클래스가 본질적으로 다릅니다.
LDJ

7

여기에서 권장되는 수정 사항을 대부분 시도했지만 여전히 오류 메시지를 피할 수 없었습니다. 마지막으로 몇 가지 권장 솔루션을 조합하여 수행했습니다.

  1. 이 항목을 AppSettingsweb.config 섹션 상단에 추가했습니다 .

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

  2. 프로젝트의 References 노드를 확장하고 문자열이 포함 된 모든 것을 삭제했습니다 OWIN. (나의 조직이 앞으로 활발한 OWIN 제공 업체가 아니기 때문에 안전하다고 느꼈습니다)

그런 다음 클릭 Run하여 홈페이지를 바로로드했습니다.


4

필자의 경우 프로젝트 이름을 바꾸고 폴더 구조를 변경했습니다. 오류가 발생한 .csproj 파일에서 RootNameSpace 및 AssemblyName을 업데이트하면 오류가 해결되었습니다. 프로젝트 경로를 수정 한 경우이를 확인하는 것이 좋습니다.

<RootNamespace>Company.Product.WebAPI</RootNamespace>
<AssemblyName>Company.Product.WebAPI</AssemblyName>

당신에게 성스러운 소 쿠도들은 영원히 같이 붙어 있었고 이것을 읽을 때까지 해결책을 찾지 못했습니다. AssemblyName은 수동으로 변경 한 후에 업데이트되지 않았습니다. 이제 작동합니다! 정말 고맙습니다!
메이슨

3

내 경우? 시작 파일이 있지만 프로젝트에서 제외됩니다. 방금 포함 시켰으며 오류가 남았습니다.


3

MVC 프로젝트에서 Azure AD를 사용할 때 Visual Studio 2015에서도 이러한 문제가 발생할 수 있습니다. 여기에서 App_Start 폴더에 시작 파일을 Startup.Auth.cs로 생성하지만

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

추가하면 좋을 것입니다. 네임 스페이스가 시작되기 전에 진행됩니다.


2

IIS Express를 통해 실행 중이고 가상 디렉터리가 올바르게 구성되지 않은 경우 (예 : 시작 클래스를 올바르게 구성한 경우에도)이 예외가 발생할 수 있습니다.

이 문제가 발생했을 때 해결 방법은 프로젝트 속성의 '웹'탭에서 '가상 디렉터리 만들기'버튼을 누르는 것입니다 (Visual Studio 2013 사용).


2

실제로 프로젝트에 OWIN을 추가하려고합니까?

  1. OWIN을 추가하려는 경우 Startup 클래스를 추가하는 것이 좋습니다.

  2. Owin에 대한 참조가 필요 하지 않은 경우 :

    / bin 폴더에서 Owin.dll을 삭제하십시오 .

    Owin.dll은 Startup 클래스를 식별하려는 것입니다.



1

SignalR을 실험하고 프로젝트에서 제거한 후에이 문제가 발생했습니다. 이 문제를 해결하려면 원격 서버에서 사이트의 bin 폴더 내용을 삭제 한 다음 다시 게시해야했습니다.


1

packages.config파일이 체크인되어 있는지 확인 하십시오 (제외 된 경우 탐색기에 빨간색 항목 없음 기호가 표시됨). 기괴한 이유로 광산이 제외되어이 문제가 발생했습니다.


0

VS2013에서 브라우저 링크 대시 보드를 사용하여 프로젝트를 시작할 때 동일한 오류가 계속 발생했습니다. 그러나 디버그 모드에서 프로젝트를 실행하면 작동합니다. 브라우저 링크 대시 보드가 작동하는 이유와 방법을 알 수 없었습니다. 시작 파일을 확인했는데 괜찮 았습니다. 일부 답변 ""에 설명 된대로 appSetting 줄을 추가했지만 아무 효과가 없었습니다.

분명히 내가 잘못하고있는 것은 브라우저 대시 보드에서 잘못된 링크를 클릭하는 것이 었습니다. 모든 솔루션 프로젝트 링크가 브라우저 대시 보드에 표시되지만 시작 프로젝트 링크 만 작동합니다. 시작 프로젝트의 링크를 클릭해야합니다.

예 : 두 개의 프로젝트가 있는데 둘 다 브라우저 대시 보드에 표시되지만 시작 프로젝트로 표시된 프로젝트 만 작동합니다 (솔루션 탐색기에 굵은 체로 표시됨). 명백한 일에 비틀 거리는 날들.


0

다른 프로젝트가 여러 VS 인스턴스에서 열려있는 동안 TFS에서 최신 버전을 얻었을 때이 문제가 발생했습니다. 위의 모든 수정 사항이 이미 있습니다. VS를 다시 열면 문제가 해결되었습니다.


0

제 경우에는 ftp 서버에 로그인했습니다. FTP 서버에서 현재 파일 백업을 수행했습니다. ftp 서버에서 모든 파일을 수동으로 삭제하십시오. 깨끗한 솔루션, 코드를 재배치했습니다. 효과가있었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.