2011-08-08 5 views
0

CreateDataSource가 호출 될 때 Silverlight 클라이언트에 채워지는 사용자 지정 헤더를 얻지 못하는 것 같습니다. 다음 코드가 있습니다 :CreateDataSource WCF DataServices

protected override CaseEntitiesContext CreateDataSource() 
{ 
    return new CaseEntitiesContext(CaseGuid, ConnectionString, Provider) 
    { 
    DefaultContainerName = "CaseEntitiesContext" 
    }; 
} 

ConnectionString과 Provider는 web.config에서 가져 왔지만 RequestHeader에서 CaseGuid를 가져와야합니다.

생성자 또는 인라인에서 다음 코드를 추가하면 CreateDataSource 다음에 코드가 실행됩니다.

 ProcessingPipeline.ProcessingRequest += (o, args) => 
    { 
     CaseGuid = new Guid(args.OperationContext.RequestHeaders["caseguid"]); 
     Debug.WriteLine("request case guid:" + args.OperationContext.RequestHeaders["caseguid"]); 
     Debug.WriteLine("CaseRequest Processing HTTP {0} request for URI {1} Case Guid {2}", 
      args.OperationContext.RequestMethod, 
      args.OperationContext.AbsoluteRequestUri, 
      args.OperationContext.RequestHeaders["caseguid"]); 
    }; 

내가 참고 CreateDataSource

에서 Request 개체를 얻을 수있는 방법/어떤 아이디어 : CaseEntitiesContext 올바른 DB 카탈로그를 결정하는 가이 드에 따라 EF를 생성하는 사용자 정의 생성자입니다.

답변

0

대답은 표준 asp.net 웹 사이트에서 호스팅되기 때문에 HttpContext.Current.Request를 사용하는 것입니다.

관련 문제