Programing

OWIN 시작 클래스가 없습니다

lottogame 2020. 4. 22. 08:09
반응형

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 이름과 동일한 지 확인하십시오. 나를 위해 문제를 해결했습니다.


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

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

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

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

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


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

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

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


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

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

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


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

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


실제로 프로젝트에 OWIN을 추가하려고합니까? 아니면 예기치 않은 것입니까?

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

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

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

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


이 나를 위해 문제를 해결 이유를 충분히 설명 할 수는 없지만 내가 분리 빌드로 내 API 프로젝트를 변경 한 후,이 같은 문제로 실행 \debug\release폴더. 변경 사항을 되돌려 서 단일 \bin폴더 로 빌드하면 작업이 시작되었습니다.

ASP.NET 프로젝트 파일 이름을 바꾼 후 IIS Express에서 OWIN 시작 클래스를 실행할 수 없습니다 .


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


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


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

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

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


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


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

참고 URL : https://stackoverflow.com/questions/20068075/owin-startup-class-missing

반응형