2016-08-18 7 views
0

유지중인 webforms 프로젝트에서 NullReferenceExceptions이 표시됩니다. 예외는 내 코드로 인해 예외가 발생하지 않기 때문에이 예외에 대한 스택 추적이 없다는 것입니다. Stack Trace비동기 await 작업 null 참조 예외

을 : 나는 비 사용자 코드 스택 트레이스를 볼 때
System.NullReferenceException was unhandled Message: An unhandled exception of type 'System.NullReferenceException' occurred in mscorlib.dll Additional information: Object reference not set to an instance of an object.

, 내가 (모든 mscorlib에에) 다음을 참조 : 클립 보드에 복사 NullReferenceException was unhandled

예외 세부 사항은 제로 지원을 제공 오류는 페이지를로드하거나 다시 게시하여 임의 및 일관성이 없습니다. 문제는 다른 사이트에 노출 된 REST 서비스에서 데이터를 가져 오는 데 System.Net.Http.HttpClient을 추가 한 후에 시작되었습니다. HttpClient에는 데이터 송수신을위한 비동기 메서드 만 포함됩니다. 내부 stacktrace를 바탕으로, 나는 작업 <>/async/await를 범인으로 의심합니다.

문제 해결을 돕기 위해 .NET 4.6에서 컴파일하는 WebForms 사이트에서이 작업을 실행하고 있음을 다시 한번 확인해주십시오. 내 문제는 MVC로 업그레이드해야한다는 것입니다. 키 입력 및 그것을 말하지 마십시오). HttpClient를이 작업 <> 모든 항목을 노출하는 동안, 나는 호출하여 동 기적을 호출 오전 : 사전에
Task<MyObject> myResultTask = restClient.GetResultAsync(); MyObject myResult = myResultTask.Result; // no await

감사합니다!

+3

단지 ( – Steve

+0

@ 스티브 아니, ['Task.Result'] (https://msdn.microsoft.com/en-us/library/dd321468를 롤 await를 호출 (스티븐 클리어 리에서 코멘트에 권장) v = .110) .aspx) _does_ 작업이 완료 될 때까지 대기 한 후 값을 반환합니다. –

+2

@ RenéVogt 만약 당신이 모든 종류의 이상한 문제들에 쉽게 빠져들 수 있다는 것을 기억한다면, – Steve

답변

2

방금이 문제가있어 답변으로 제안하고 싶습니다. 당신의 Web.config에서

다음이 있는지 확인하십시오

https://blogs.msdn.microsoft.com/webdev/2012/11/19/all-about-httpruntime-targetframework/

그냥 충돌 보인다

<system.Web> 
     <httpRuntime targetFramework="4.5" /> 
    </system.Web> 

<appSettings> 
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />  
</appSettings> 

여기에 더 많은 정보를보기 당신이 이것을하지 않으면 무작위로. 저는 이전 버전과의 호환성에 대한 열렬한 팬입니다 만 새로운 방식으로 선택하지 않으면 충돌이 발생하지 않습니다.