Client ASP.NET effectuant des appels asynchrones vers un service WCF
Bonjour à tous,
J'ai créé un service WCF des plus basique.
IHelloWorldServiceCallback
Code:
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);
} |
IHelloWorldService
Code:
1 2 3 4 5 6
| [ServiceContract(CallbackContract=typeof(IHelloWorldServiceCallback))]
public interface IHelloWorldService
{
[OperationContract(IsOneWay=true)]
void sayHello();
} |
HelloWorldService
Code:
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'essaie de créer un client web pour ce service.
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
Code:
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;
}
} |
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)
D'ou vient ce problème ?