2012-05-16 1 views
1

Nginx + FastCGI-Mono-Server를 사용하여 작은 asp.net 웹 서비스를 호스팅하고 있습니다. FastCGI-Mono-Server2 (.Net 2.0 버전)를 사용하여 잘 실행됩니다. 이제 asp.net 앱을 .net 4.0으로 업그레이드해야합니다. 즉, FastCGI-Mono-Server4로 업그레이드해야합니다. 모든 올바른 파일을 제자리에 놓았습니다. 그것은 작동합니다! 그러나, 그것은 신비한 오류로 끊임없이 충돌합니다.Nginx + FastCGI-Mono-Server4를 사용하여 ASP.Net 3.5에서 4.0으로 이동 한 후 오류가 발생했습니다.

예외 : System.Runtime.FatalException

메시지 : 개체의 인스턴스로 설정되지 않은 개체 참조 여기

오류이다.

스택 트레이스 : System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4 (MessageRpc & RPC) 에서 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3에서 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31 (MessageRpc & RPC) (MessageRpc에서 & RPC) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2 (MessageRpc & RPC) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11 (MessageRpc & RPC) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1에서 에서 (MessageRp에서 C & RPC) System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump에서 System.ServiceModel.Dispatcher.MessageRpc.Process (부울 isOperationContextSet) (RequestContext 요청 System.ServiceModel.Dispatcher.ChannelHandler에서 부울 cleanThread, OperationContext currentOperationContext) 에서 . System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame에서 System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete (IAsyncResult를 결과) 에서 System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump (IAsyncResult를 결과) 에서 HandleRequest (RequestContext 요청 OperationContext currentOperationContext) (IAsyncResult 결과) at System.Runtime.AsyncResult.Complete (Boolean completedSynchronously) at S System.ServiceModel.Channels에서 System.Runtime.AsyncResult.Complete (부울 completedSynchronously) 에서 System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame (IAsyncResult를 결과) 에서 ystem.ServiceModel.Channels.FramingDuplexSessionChannel.TryReceiveAsyncResult.OnReceive (IAsyncResult를 결과) System.ServiceModel.Channels.SocketConnection.AsyncReadCallback에서 System.ServiceModel.Channels.SocketConnection.FinishRead() 에서 System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete (개체 상태) 에서 .SynchronizedMessageSource.ReceiveAsyncResult.OnReceiveComplete (개체 상태) (부울 hasResult, Int32 오류, Int32 bytesRead) at System.ServiceModel.Channels.OverlappedContext.CompleteCallback (UInt32 오류, UInt32 numBytes, NativeOverlapped * nativeOverlapped)시스템 : System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame (UINT32 에러 UINT32 bytesRead, NativeOverlapped * nativeOverlapped) System.Threading._IOCompletionCallback.PerformIOCompletionCallback에서 (UINT32의 errorCode, UINT32하는 numBytes, NativeOverlapped * pOVERLAP)

의 InnerException에서. NullReferenceException

메시지 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

StackTrace : System.Web.HttpApplication.ThreadContext.Enter (부울 setImpersonationContext) at System.Web.HttpApplication.System.Web.AspNetSynchronizationContext.CallCallback에서 System.Web.AspNetSynchronizationContext.CallCallbackPossiblyUnderLock에서 OnThreadEnterPrivate (부울 setImpersonationContext) (SendOrPostCallback 콜백 개체 상태) , System.Web.AspNetSynchronizationContext.Post (SendOrPostCallback 콜백에서 (SendOrPostCallback 콜백 상태 개체) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4 (MessageRpc & RPC)

에서 System.ServiceModel.Dispatcher.ThreadBehavior.BindCore (MessageRpc & RPC, 부울 startOperation) 에서 개체 상태) 나는이 프로젝트에 IHttpAsyncHandler을해야합니까 . 나는 그것과 어떻게 든 관련이 있는지 궁금해.

[CallbackBehavior (UseSynchronizationContext = false)를] 내가 그 무엇을 말할 수에서

는 WCF의 일이 내 ASP 관련이 :이 특성을 추천 : 내 오류를 검색 할 때 나는 (wcf callback exception after updating to .net 4.0 같은) 사람을 발견 .net 웹 서버. 모든 아이디어를 높이 평가할 수 있습니다!

EV

+0

null이 아닌지 확인하고 싶습니다. System.Web.HttpApplication.ThreadContext.Enter (Boolean setImpersonationContext) 두 번째 스레드에서 스택의 맨 위에 있기 때문입니다. – sammarcow

답변

0

실행

ln -s /opt/mono-3.2/lib/mono/4.0/fastcgi-mono-server4.exe /opt/mono-3.2/lib/mono/4.5/fastcgi-mono-server4.exe 

사용하여 FastCGI 서버 디렉토리 4.5에서 모노가 모노 접두사

/opt/mono-3.2 교체, 다른 장소에 설치되어있는 경우

/opt/mono-3.2/lib/mono/4.5/fastcgi-mono-server4.exe