2009-07-10 8 views
1
내가 헤더 솔로몬의 최소한의 출판 마스터 페이지를 사용하고

는, 나는 apsx 페이지에 간단한 기능이셰어 마스터 페이지 및 세션 상태

public class SSInformPage : Page 
{ 
    protected Literal Literal1; 

    protected override void OnLoad(EventArgs e) 
    { 
     //base.OnLoad(e); 
     try 
     {     
      HttpContext.Current.Session["Name"] = "Mr Ben"; 
      Literal1.Text = string.Format("{0} {1}", HttpContext.Current.Session["Name"].ToString(), Session.SessionID); 
     } 
     catch (Exception ex) 
     { 
      Literal1.Text = string.Format(ex.Message.ToString()); 
     } 
    } 

} 

이 페이지가로드를 수행 파일 뒤에 코드를 가지고 브라우저에서 다음 오류가 발생합니다.

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

아직 기본 페이지 (예 : 검은 색 세로)로 전환하면 코드가 작동합니다. "Ben {session ID}"의 예상 결과를 얻었습니다.

새 빈 마스터 페이지를 작성하고 Black Vertical 마스터 페이지의 전체 내용을이 페이지에 복사했습니다. 나는이 새로운 마스터 페이지에 사이트를 설정하고, 작업 할 모든 것을 기대하는 페이지를로드하고 'Object reference ...'오류를 수신합니다. 어떻게 작동합니까? 그것은 정확하게 동일한 마스터 페이지이지만 코드는 OOTB 버전 일 경우에만 작동합니다.

중앙 관리에서 세션 상태를 사용하도록 설정하면 web.config 파일과 어셈블리가 GAC에 배포됩니다. 신뢰의 문제가 될 것으로 보인다 다른 포럼의 제안에서

업데이트 는, 나는 GAC에 배포하는 솔루션을 생각의 잘못이었다 실제로 Bin 폴더에 배포했다. 나는 이것을 재설정하려고 시도했지만 GSP에 대한 솔루션에 WSPBuilder를 배포 할 수는 없지만 웹 응용 프로그램의 bin 폴더에 배포하는 것을 중단 할 수는 있습니다.

누구든지 GAC 폴더에 배포 할 수있는 솔루션을 얻는 방법을 알고 있습니까? 이 내 STSADM 명령

stsadm -o deploysolution -name Test.SessionState.Solution.wsp -immediate -url http://example -allowGacDeployment -allowCasPolicies -force 

UDPATE 2 없음이 신뢰 문제가 아니다, 난 내 솔루션을 다시 만들어와는 GAC에 배포 보장합니다. 셰어 포인트 디자이너에서 OOTB 마스터 페이지를 열고 저장 버튼을 클릭하면 페이지가 '사용자 정의'됩니다. 이렇게하면 코드가 작동을 멈추고 사이트 정의로 마스터 페이지를 다시 설정하면 코드가 다시 작동하기 시작합니다.

나는 행동을보기 위해 누구든지 이것을 설치하고 싶은 soltion 파일을 가지고있다.

답변

0

특정 오류에 도움을 줄 수 없으며 헤더의 마스터 페이지가 정상적으로 작동해야하지만 web.config 파일에서 세션 상태를 사용하도록 설정했는지 확인해야합니다. 올바른 위치는 instructions here을 사용하는 SharePoint 중앙 관리에서입니다.

SharePoint는 여러 WFE에서 세션을 공유해야하므로 SharePoint에서 자체 세션 관리자를 제공하기 때문입니다. 이 작업을 표준 ASP.NET 방식으로 수행하려면 Eric Kraus' instructions을 사용하십시오. 그러나 이것이 어떻게 지원되는지, 그것이 어떤 부작용을 일으키는 지 확신 할 수 없습니다.

이러한 대안 중 하나를 시도해보고 어떻게되는지 알려주세요. 잘만되면 오류가 사라집니다!

+0

내가 중앙 관리에서 세션 상태를 사용할 수 있음을 언급하는 것을 잊었다 문제 및 가능한 작업 차선책을 나열 기사입니다. 포인트 5를 보면, 그것이 웹 설정을 수정하는 부분입니다. 회신 해 주셔서 감사합니다! – Rob

+0

방금 ​​확인한 결과 세션 정보가 공유 서비스 공급자의 'ASPStateTempSessions'테이블에 저장되고 있는지 확인할 수 있습니다. – Rob

+0

음 ... 계속 생각하고 내가 다른 것을 생각해 내면 알려주지. 우리 앞에서 해결하기 전에 답변을 추가하십시오! –