2014-11-11 2 views
1

ASP.NET 웹 API 자체 호스트를 실행하려고합니다. 이 오류가 계속 발생합니다.ASP.NET 자체 호스트 오류

어떻게 해결할 수 있습니까?

어셈블리 참조로 가정합니다. Microsoft.Owin, Version=2.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches assembly Microsoft.Owin, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 ' 런타임 정책 (CS1701)을 제공해야 할 수도 있습니다.

다음은 간단한 시작 스크립트입니다.

static void Main(string[] args) 
    { 
     using (WebApp.Start<TestApi> ("http://*:9090/")) 
     { 
      Console.WriteLine ("server started"); 
     } 
    } 
+0

해결 방법은 무엇입니까? – Anil

답변

0

두 어셈블리의 릴리스 및 버전 번호가 다릅니다. 통일이 발생하는 경우, 응용 프로그램의 .config 파일에있는 지시어를 지정해야하며 다음 예제 코드와 같이 당신은 어셈블리의 올바른 강력한 이름을 제공해야합니다

using System.Reflection; 
[assembly:AssemblyVersion("1.0")] 
public class A { 
    public void M1() {} 
} 

OR : 아마도

.config에 바인딩 리디렉션이 필요합니다.

<configuration> 
<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
      <bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="2.0.2.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
      <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
      <bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="2.0.2.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 
</configuration> 
+0

하지만 Nuget을 통해 참조 된 어셈블리는 하나뿐입니다. 다른 참조가 어디서 왔는지 어떻게 알 수 있습니까? – govin

+0

예, 바인딩 리디렉션이 있습니다. 그것은 빌드 시간 경고입니다. 그 경고를 없애기 위해서. – govin

관련 문제