2017-11-22 8 views
3

내가 IIS (10)Microsoft.AspNetCore.Antiforgery는

에 asp.net 코어 2.0 웹 사이트를 구축하고있어 내 앱이 program.settings에 ISS에 대한 올바른 구성을 사용하고 있는지 확인했습니다 찾을 수 없습니다 파일.

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     BuildWebHost(args).Run(); 
    } 

    public static IWebHost BuildWebHost(string[] args) => 
     WebHost.CreateDefaultBuilder(args) 
      .UseKestrel() 
      .UseContentRoot(Directory.GetCurrentDirectory()) 
      .UseIISIntegration() 
      .UseStartup<Startup>() 
      .Build(); 
} 

그리고 내 startup.cs에서

파일 :

public void ConfigureServices(IServiceCollection services) 
    { 
     services.Configure<IISOptions>(options => 
     { 
     }); 
     services.AddMvc(); 
    } 

을 그러나 내가 명령 줄 창에 표시된 오류 메시지가 아래 얻을 명령 줄에서 후에 .NET website.dll 실행하면

응용 프로그램 종속성 매니페스트 (website.deps.json)에 지정된 어셈블리를 찾을 수 없습니다 : 패키지 : 'Microsoft.AspNetCore.Antiforgery', 버전 : '2.0.1' 경로 : 'lib/netstandard2.0/Microsoft.AspNetCore.Antiforgery.dll' aspnetcore-store-2.0.3을 사용하여 응용 프로그램이 게시 된이 어셈블리는 로컬 런타임 저장소에 있어야합니다. .xml

디버깅 할 때 오류가 발생하지 않아 게시 할 때 Microsoft.AspNetCore.Antiforgery가 번들되지 않는 것으로 추측됩니다.

라이브 환경에 게시 할 때 내 앱이 Microsoft.AspNetCore.Antiforgery를 찾을 수 있도록하려면 어떻게해야합니까?

EDIT : 기본 .net 핵심 웹 사이트입니다. IIS 배포와 관련하여 위의 변경 사항을 제외하고는 현재 표준 프로젝트를 변경하지 않았습니다.

명령 줄 대신 IIS에서 프로젝트를 실행하면 502.5 오류 메시지가 나타납니다. 일치하지 않는로 상기 문제를 해결하려면 PublishWithAspNetCoreTargetManifest 속성과 재생, 그리고

<PackageReference Include="Microsoft.AspNetCore.Antiforgery" Version="..." /> 

: 당신이 실제로이 라이브러리를 사용하는 경우

+2

'dotnet restore'를 사용해보십시오. 이게 임시 솔루션을 사용하지 않고 로컬에서이 * .dll을 복사하여 복사하는 데 도움이되지 않는다면 –

+1

@ J.Doe가 언급했듯이'dotnet restore '를 시도하십시오. csproj를 공유 하시겠습니까? –

+1

Windows (다른 서버의 다른 곳)에 게시하고 Linux에서 실행하는 경우 .Net SDK의 버전이 동일하거나 호환되는지 확인하십시오. 'dotnet --info' 또는'dotnet --version'으로 버전을 확인할 수 있습니다. – Babak

답변

4

서버를 v2.0.3으로 업그레이드하십시오. 당신은 기존 서버는 .NET의 핵심 런타임 V2.0.0을 실행 한

  1. 경우

    이 문제가 발생합니다.

  2. SDK의 v2.0.3을 대상으로하는 앱을 만들었습니다.
  3. v2.0.3 앱을 v2.0을 실행하는 서버에 게시합니다.0

런타임 문제는 서버에 v2.0.3을 설치하면 해결할 수 있습니다. 여기 Microsoft 사이트에서 런타임을 다운로드 할 수 있습니다 https://www.microsoft.com/net/download/windows

+1

또는 이전 .NET Core Nuget 패키지로 되돌릴 수 있습니다. 2.0.0을 설치해야했습니다. Pivotal Cloud Foundry buildpack이 2.0.0을 사용 중이었고 2.0.3을 사용했기 때문입니다. –

3

, 당신의 *의 .csproj 파일에 해당하는 명시 적 참조가 있는지 확인 명백한. 수에 대한 자세한 문제를 알아 보려면 다음 자국을 확인 전개하는 동안 : 나는 .NET의 핵심 런타임에 업데이트하여이 문제를 해결 할 수 있었다

An assembly specified in the application dependencies manifest (RhWeb.deps.json) was not found

published application is missing assembly (missing runtime store associated ...) [2.0.0-preview2-005905]

HTTP Error 502.5 - Microsoft.AspNetCore.Antiforgery.dll

+0

값이 false 인 PublishWithAspNetCoreTargetManifest 속성을 추가하면 나에게 적합합니다. 나는 출판물에 포함 된 추가 파일에 주목했다. 그것은 응용 프로그램이 완전히 자체 포함되어 나타납니다? – gregsonian