To me, it seems that the parameter you passing in could be dodgy. You need to put more logging into this app also.
From your code you posted in the main method, where is the part that de-serializes the data?
Code:
static void Main(string[] args)
{
ChannelFactory<IAfricaStuff> channelFactory;
IAfricaStuff client;
try
{
//create the binding
var binding = new WSHttpBinding();
//configure the binding
binding.Security.Mode = SecurityMode.Message;
binding.MaxReceivedMessageSize = 2147483647;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
binding.SendTimeout = new TimeSpan(0, 10, 0);
binding.CloseTimeout = new TimeSpan(0, 10, 0);
binding.OpenTimeout = new TimeSpan(0, 10, 0);
binding.ReceiveTimeout = new TimeSpan(0, 10, 0);
var endpointAddress = new EndpointAddress("http://localhost:54358/AfricaStuff.svc");
channelFactory = new ChannelFactory<IAfricaStuff>(binding, endpointAddress);
client = channelFactory.CreateChannel();
[B]//De-serialize list of africa stuff?[/B]
[B]var result = client.SaveStuff(); //Where are you passing in the data?[/B]
//create the channel
channelFactory.Close();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
I think it would be a lot easier to debug and help if you give more info on the code and where this data is mapped from?
Can you log the data being passed in before you do the call to savestuff()?