One thing many people have a problem with is they forget that they need to add a firewall rule or foreword a port to allow outside connection to the endpoint when trying to communicate from a hand-held device that is using the carrier's internet connection (rather than wifi). it could be completely missed since the blackberry is sitting right next to you and you don't think of it as an outside caller.
if that's not the case try a WCF hosted app
You can expose your service using a WCF endpoint.
from http://msdn.microsoft.com/en-us/library/ms731758.aspx
// Host the service within this EXE console application.
public static void Main()
{
// Create a ServiceHost for the CalculatorService type and use
// the base address from config.
ServiceHost hostDefault = new ServiceHost(typeof(CalculatorService));
int manualFlowControlLimit = hostDefault.ManualFlowControlLimit;
basicHttpBinding portsharingBinding = new basicHttpBinding();
hostDefault.AddServiceEndpoint(typeof( CalculatorService ),portsharingBinding,"http://localhost/MyService" );
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService)))
{
// Open the ServiceHost to start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.ReadLine();
// Close the ServiceHost.
serviceHost.Close();
}
}