Ik ben bezig om een WCF service te ontwerpen en tegelijkertijd een client te implementeren die gebruik van de service maakt.
Bij 1 van de operations is het de bedoeling dat er een overgeerft object word teruggegeven waarin diverse objecten en enumeraties in verwerkt zitten:
De methodeaanroep ziet er als volgt uit:
Wanneer ik de enumeratie in de code plaats gaat het mis bij de aanroep van de functie, aan de client kant krijg ik de volgende exceptie:
System.Exception: An error occurred while receiving the HTTP response to http://localhost:8080/MijnService This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details..
Aan de client kant maakt de Visual Studio er een string van (ipv de enum zelf)
Ik heb geen flauw idee waar het aan ligt, Alleen als ik de enumeratie weghaal uit de code werkt de aanroep, anders krijg ik deze exceptie.
Een tweede vraag is, de functie "DoSomething()" krijg ik niet te zien aan de clientkant (omdat deze onderdeel is van het datacontract en hij geen attribute heeft. Is het moglijk om deze methode toch aan de client kant uitvoerbaar te maken?
Bij 1 van de operations is het de bedoeling dat er een overgeerft object word teruggegeven waarin diverse objecten en enumeraties in verwerkt zitten:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| [DataContract] public class Device { private int _id; [DataMember] public int ID { get { return _id; } set { _id = value; } } } [DataContract] public enum DeviceStatus { Offline,Online; } [DataContract] public class DeviceExtended : Device { private DeviceStatus status; [DataMember] public DeviceStatus Status { get { return status;} set { status = value; } } public void DoSomething() { } } |
De methodeaanroep ziet er als volgt uit:
C#:
1
2
| [OperationContract] public Device[] GetDevices(); |
Wanneer ik de enumeratie in de code plaats gaat het mis bij de aanroep van de functie, aan de client kant krijg ik de volgende exceptie:
System.Exception: An error occurred while receiving the HTTP response to http://localhost:8080/MijnService This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details..
Aan de client kant maakt de Visual Studio er een string van (ipv de enum zelf)
Ik heb geen flauw idee waar het aan ligt, Alleen als ik de enumeratie weghaal uit de code werkt de aanroep, anders krijg ik deze exceptie.
Een tweede vraag is, de functie "DoSomething()" krijg ik niet te zien aan de clientkant (omdat deze onderdeel is van het datacontract en hij geen attribute heeft. Is het moglijk om deze methode toch aan de client kant uitvoerbaar te maken?
Mess with the best, die like the rest