2010-06-25 2 views
2

Silverlight 및 WCF 서비스를 처음 사용합니다. 객체 서버 측을 조작 할 수있는 클라이언트 응용 프로그램을 작성하려고합니다.SilverLight 사용 Wcf 서비스 - 세션을 추적 할 수 없습니다.

내 문제는, 단순히 증가 할 또는 숫자가에 따라 감소 내 실버 라이트 클라이언트가 서비스를 호출 할 때마다, 그것은 아래의 예에서 생성자 체계적으로

public SilverLightEnabledWcfService() 
     { 
     } 

로 진입이다 활동 클라이언트 측.

어떻게해야합니까?

일반 ASP.net 클라이언트 페이지를 만들려고했는데 동일한 결과가 나타납니다. 즉 서버가 세션을 기억하지 못합니다. 따라서 문제는 내 고객에게 있다고 생각하지 않지만 도움이된다면 코드를 게시하게되어 기쁩니다.

감사합니다.

using System; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.ServiceModel.Activation; 
using Count.Library; 

namespace Count.WebApp 
{ 
    [ServiceContract(Namespace = "")] 
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 
    public class SilverLightEnabledWcfService 
    { 
     public SilverLightEnabledWcfService() 
     { 
     } 

     private Class1 _class1; 

     [OperationContract] 
     public int Add1() 
     { 
      if (_class1 == null) 
       _class1 = new Class1(0); 
      _class1.Add1(); 
      return Value; 
     } 

     [OperationContract] 
     public int Remove1() 
     { 
      if (_class1 == null) 
       _class1 = new Class1(0); 
      _class1.Remove1(); 
      return Value; 
     } 

     public int Value 
     { 
      get 
      { 
       return _class1.Count; 
      } 
     } 
    } 
} 
+1

당신이 사용하는 바인딩? 서버 및 클라이언트 측 구성은 어떻게 생겼습니까? 세션은 일부 소수의 바인딩에서만 지원됩니다. 특히 basicHttpBinding은 ** 세션을 지원하지 않습니다 **. –

답변

1

세션에는 wsHttpBinding이 필요하지만이 세션은 Silverlight에서 지원되지 않습니다. 해결하지만,이 있습니다

http://web-snippets.blogspot.com/2008_08_01_archive.html

http://forums.silverlight.net/forums/t/14130.aspx

+0

링크를 제공해 주셔서 감사합니다. 이것들은 내가 올바른 접근법을 가지고 있는지 궁금하게 만든다. 세션을 사용할 필요가 없을 수도 있습니다. 확실하지 않습니다. 기본적으로 Silverlight 클라이언트에서이 특정 클라이언트가 호출 한 이전에 인스턴스화 된 개체를 유지할 서버에서 WCF 서비스를 호출하려고합니다. 클라이언트에서 연속 메서드를 호출하여 서버에 저장된 동일한 개체에 대해 호출하려고합니다. 이 작업을 수행하려면 세션을 사용해야합니까? 감사합니다. – bmanu

+0

SilverLightEnabledWcfService 클래스에 상태를 저장하지 않겠습니다. 모든 서비스 요청을 동일한 응용 프로그램 도메인의 개체 또는 두 번째 wcf 서비스로 릴레이하고 FormsAuthentication 메서드를 사용하여 개체 또는 두 번째 서비스에 해당 요청을 수행하는 데 필요한 사용자 정보를 제공하려고합니다. – Ozan

관련 문제