Objective
This article will give a brief explanation on how to handle remote server name could not resolved exception in WCF Data Service. If you are new to this topic, please read Introduction to WCF Data service and ODATA before going through below article. Let us say, there is a WCF Data Service up and running on a particular server. We access that using below code at the client side
Program.cs
using System;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data.Services.Client;
using ConsoleApplication1.ServiceReference1;
namespace ConsoleApplication1
{
classProgram
{
staticvoid Main(string[] args)
{
DataServiceContext context = newDataServiceContext(newUri("http://localhost:61091/WcfDataService1.svc/"));
DataServiceQuery query = context.CreateQuery("Employees");
foreach (Employee e in query)
{
Console.WriteLine(e.FirstName);
}
Console.Read();
}
}
}
And output is as below,

Every this is fine till this point. Now let us go ahead and modify the WCF Data Service URL to a false URL
DataServiceContext context = newDataServiceContext(
newUri("http://abc:61091/WcfDataService1.svc/"));
And URL, I am giving is false one. Server abc does not exist. Now after modification code will look like
using System;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data.Services.Client;
using ConsoleApplication1.ServiceReference1;
namespace ConsoleApplication1
{
classProgram
{
staticvoid Main(string[] args)
{
DataServiceContext context = newDataServiceContext(
newUri("http://abc:61091/WcfDataService1.svc/"));
DataServiceQuery query = context.CreateQuery("Employees");
foreach (Employee e in query)
{
Console.WriteLine(e.FirstName);
}
Console.Read();
}
}
}
And when you try to run, you will get the run time exception as below,

Now to handle this exception put the foreach statement in try catch , so no modified code will look like
using System;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data.Services.Client;
using ConsoleApplication1.ServiceReference1;
namespace ConsoleApplication1
{
classProgram
{
staticvoid Main(string[] args)
{
DataServiceContext context = newDataServiceContext(
newUri("http://abc:61091/WcfDataService1.svc/"));
DataServiceQuery query = context.CreateQuery("Employees");
try
{
foreach (Employee e in query)
{
Console.WriteLine(e.FirstName);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
}
}
}
And now running output will be as below,
