WCF 요청시 메시지 헤더에서 데이터를 선택하는 인터셉터가 있습니다. 아래를 참조 HttpContext.Current.Items에 액세스하는 WCF에서 정적 메서드를 사용할 수 있습니까?
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
_CurrentRequest = request;
SetupSecurityPrincipal();
ThreadExtension.PersonID = GetIntHeader(HeaderKeys.PersonID);
return null;
}
ThreadExtension
HttpContext.Current
로 설정 GET을 제공/정적 속성을 가진 클래스이다. 아래를 참조하십시오 : 우리가 또 다른 한 사람의 데이터의 결과로, 함께 충분히 가까이 일 2 개 요청이있는 경우 그래서 문제가 우리의 웹 요청에
public class ThreadExtension
{
public static int? PersonID
{
get { return (int?)HttpContext.Current.Items["PersonID"]; }
set { HttpContext.Current.Items["PersonID"] = value; }
}
}
우리의 WCF 웹 서비스에
ThreadContext
변화, 때로는 정보를 종료 사람의 세션.
제 질문은 무엇이 잘못 되었습니까? 여기서 정적 속성을 사용하는 것이 올바른 방법이 아닌가? 이상적으로는 WCF의 요청에 묶여있는 무언가가 필요하기 때문에 항상 데이터를 전달하지 않고 몇 군데에 도착할 수 있습니다.
제공 할 수있는 도움이나 조언을 보내 주시면 대단히 감사하겠습니다.
왜 세션 정적 인 경우 해당 정적 정적? – Yahia
우리는 모든 통화에 대해 값을 전달하지 않고 해당 사람의 통화 평생 동안 해당 값에 액세스하려고합니다. 이 잘못 생각할 수도 있지만 내 인상은 정적 속성은 HttpContext에 통과하는 것입니다. 더 좋은 방법이 있습니까? –
WCF에서 세션을 사용하고 있습니까 (예 : netTCP 바인딩 포함)? "PersonID"를 통화하는 동안 어떻게 관련이 있습니까? 'HttpContext.Current.Items [ "PersonID"]'를 직접 사용하지 않는 이유는 무엇입니까? – Yahia