Bonjour à tous,
J'ai créé un service WCF des plus basique.
IHelloWorldServiceCallback
IHelloWorldService
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [ServiceContract] public interface IHelloWorldServiceCallback { [OperationContract(IsOneWay = true)] void sayHelloResultCallback(string message); [OperationContract(IsOneWay = true)] void sayHelloFailureCallback(Exception e); }
HelloWorldService
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [ServiceContract(CallbackContract=typeof(IHelloWorldServiceCallback))] public interface IHelloWorldService { [OperationContract(IsOneWay=true)] void sayHello(); }
J'essaie de créer un client web pour ce service.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public class HelloWorldService : IHelloWorldService { public void sayHello() { IHelloWorldServiceCallback callback = OperationContext.Current.GetCallbackChannel<IHelloWorldServiceCallback>(); try { callback.sayHelloResultCallback("Hello World"); } catch (Exception e) { callback.sayHelloFailureCallback(e); } } }
J'ai créé une page aspx en y insérant un seul label ayant l'ID "Label1".
Voici le code de ma page aspx.cs
Mon problème est que mon label reste toujours vide alors que le système passe bien par la méthode "sayHelloResultCallback". (je l'ai testé avec un point d'arrêt)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public partial class _Default : System.Web.UI.Page, IHelloWorldServiceCallback { protected void Page_Load(object sender, EventArgs e) { HelloWorldServiceClient service = new HelloWorldServiceClient(new InstanceContext(this)); service.sayHello(); } public void sayHelloFailureCallback(Exception e) { Label1.Text = e.Message; } public void sayHelloResultCallback(string message) { Label1.Text = message; } }
D'ou vient ce problème ?
Partager