2011-04-21 2 views
1

최근에 IIS Express를 설치했기 때문에 삶이 편하게되기를 바랬지 만 거의 즉시 문제가 발생했습니다. 라이브 코드가 IIS 및 ASP.NET 웹 서버에서 실행되지만 IIS Express는 실행되지 않습니다.

일부 라이브 코드의 대표 다음 고려 :

Public Shared Function GetServiceId() As String 

    Dim principal As MyCustomAuthentication.Principal.MyPrincipal 

    principal = CType(Thread.CurrentPrincipal, MyCustomAuthentication.Principal.MyPrincipal) 
    . 
    . 
    . 
    . 

End Function 

ASP.NET 웹 서버에서 코드를 실행을 (카시니는) 모든 것이 잘 내가 Thread.CurrentPrincipal 유형의 MyCustomAuthentication의 것을 볼 수 있습니다 .Principal.MyPrincipal.

IIS Express에서 실행하면이 동일한 행에서 InvalidCastException이 throw되고 유형이 변경되어 System.Security.Principal.GenericPrincipal 인 것으로 확인되어 다른 항목이 변경되지 않으므로 혼란 스럽습니다.

MyCustomAuthentication.Principal.MyPrincipal이 IPrincipal을 구현하고 이것이 라이브 코드임을 기억하고 있으며, 현재 배포 및 작동 중입니다.

여기에 무슨 일이 일어나고 있는지 알 수있는 사람이 있습니까?

+0

해결 했습니까? 나는 똑같은 문제가있다. – LenPopLilly

+0

@LillyPop : 나는 결코 이것을 풀지 못했다. 나는 완전한 IIS를 사용하지 않고 끝냈다 고 생각한다. (1 년 전, 지금은 그 일에서 움직였다.) – DilbertDave

답변

0

대신 HttpContext.Current.User를 원한다고 생각합니다. 현재 사용자의 ID는 현재 스레드의 ID와 동일하지 않습니다.

+0

고마워 Scott - 내가 일하러 돌아올 때 (긴 주말) 나는 그것을 줄 것이다. 왜 이것이 IIS Express가 아닌 프로덕션에서 작동하는지 혼란 스럽습니다. – DilbertDave

+0

코드를 업데이트했는데 문제가 남아 있습니다. HttpContext.Current.User가 System.Security.Principal.GenericPrincipal로 전달되고 InvalidCastException이 발생합니다. – DilbertDave

관련 문제