2011-10-18 4 views
1

프로젝트에서 작업 중이므로 개발 컴퓨터에서 제대로 작동합니다. 내가 테스트를 위해 무대 서버로 이동하면 나는 다음과 같은 오류가 발생합니다 :테스트 서버에서 asp.net serialization 문제가 발생했습니다.

Unable to serialize the session state. In 'StateServer' and 'SQLServer' 

오류 메시지가이 문제로 내 비즈니스 개체 중 하나를 지정하는 데에 간다. 이 코드는 실제로 다른 개발자가 개발했지만 문제는 비즈니스 객체가 세션에 저장 될 때라고 생각합니다.

내 로컬 컴퓨터에서는 작동하지만 원격 서버에서는 작동하지 않는 이유는 무엇입니까?

+1

두 머신에서 web.config가 절대적으로 동일합니까? 상태 서버를 사용하는 경우 세션의 모든 객체를 직렬화 할 수 있어야합니다. –

+0

그들은 확실히 동일하지 않습니다. 근처에도 안. 내가 찾는 특별한 것이 있습니까? – William

+0

예 세션 구성. 세션에 넣은 모든 객체가 직렬화 가능하거나 작동하지 않는 것을 확인해야합니다. –

답변

2

아마도 개발 기계는 메모리에 직렬화하는 InProc 세션 제공자를 사용할 것입니다. SQLServer 세션 공급자를 사용하면 개체에 훨씬 더 강력한 요구 사항이 있습니다.

대부분의 경우 - 개체 중 하나가 직렬화되지 않습니다. 이유는 단순한 "직렬화 가능으로 표시되지 않음"에서 "직렬화 가능하지 않은 외부 유형에 의존"에 이르기까지 다양 할 수 있습니다.

내부 예외를 검사하여 문제가되는 유형을 추적하십시오. 일반적으로 의미 정보를 찾을 수 있습니다.

+0

InProc가 사용되고 있는지 확인할 수있는 방법이 있습니까? 불행히도 서버는 클라이언트 시스템이므로 많은 제어권이 없습니다. 내 객체가 직렬화 가능한지 테스트 할 수있는 코드를 제공하는 다른 기사를 찾았습니다. 그래서 기회가 생겼을 때 테스트 할 것입니다. – William

+0

'web.config'의'sessionState' 엘리먼트는 여러분의 데이터가 세션 컨테이너에 유지되는 방식을 제어합니다. 클라이언트 컴퓨터에서'InProc' 또는'SqlServer'로 설정되어있는 것으로 보입니다. 일시적으로 InProc로 변경하여 문제가 있는지 확인하고 개체를 수정하여 문제를 직렬화 할 수 있도록하십시오. http://msdn.microsoft.com/en-us/library/h6bb9cz9(VS.71).aspx –

+0

SQL Server 세션 관리에서 수식을 언제 입력 했습니까 ?? –

관련 문제