Having difficulty running TCP remote client from other computer

Hi Support,

I have getting error when i run my TCP remote client from different computer.

NativeErrorCode : 10049

System.Net.Sockets.SocketException: The requested address is not valid in its co

ntext

   at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.StartListening(Objec

t data)

   at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel()

   at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary pr

operties, IServerChannelSinkProvider sinkProvider)

   at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properti

es, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider se

rverSinkProvider)

   at SMB.FuelCard.FuelCardServiceProvider.Business.GenericWebFuelCardProvider.S

etTcpProperties() in c:\dev\buildarea\smb.fuelcard\smb.fuelcard.fuelcardservicep

rovider\business\genericwebfuelcardprovider.cs:line 48

   at SMB.FuelCard.FuelCardServiceProvider.Business.GenericWebFuelCardProvider.G

etFuelCardServerInstance() in c:\dev\buildarea\smb.fuelcard\smb.fuelcard.fuelcar

dserviceprovider\business\genericwebfuelcardprovider.cs:line 64

   at SMB.FuelCard.FuelCardServiceProvider.Business.GenericWebFuelCardProvider..

ctor() in c:\dev\buildarea\smb.fuelcard\smb.fuelcard.fuelcardserviceprovider\bus

iness\genericwebfuelcardprovider.cs:line 25

   at SMB.FuelCard.FuelCardServiceProvider.Business.CaltexFuelCardProvider..ctor

() in c:\dev\buildarea\smb.fuelcard\smb.fuelcard.fuelcardserviceprovider\busines

s\caltexfuelcardprovider.cs:line 18

   at SMB.FuelCard.FuelCardServiceProvider.Business.FuelCardProviderFactory.Orde

rFuelCard(FuelCardInformation obj) in c:\dev\buildarea\smb.fuelcard\smb.fuelcard

.fuelcardserviceprovider\business\fuelcardproviderfactory.cs:line 25

   at SMB.FuelCard.FuelCardServiceProvider.Facade.FuelCardService.OrderFuelCard(

FuelCardInformation fuelCardInfo) in c:\dev\buildarea\smb.fuelcard\smb.fuelcard.

fuelcardserviceprovider\facade\fuelcardservice.cs:line 23

   at SMB.FuelCard.FuelCardServiceProvider.Facade.FuelCardService.Main(String[]

args) in c:\dev\buildarea\smb.fuelcard\smb.fuelcard.fuelcardserviceprovider\faca

de\fuelcardservice.cs:line 53

------------------------------------------------------------------------------------------------
Service is running on my computer locally.

The TCP Client works fine from my local computer but when i tried to run same (client) exe from other computer i get the above error.
I have tried
    changing my DHCP from dynamic to static
    Stopped Firewall software of Windows XP service pack 2
   

I have added my Client and Server side code, if there is any error i am doing please let me know.

Server Code:

private TcpChannel SetTcpProperties()

{

// It assigns the tcp TcpServerchannnel a "ws183" server name and 8085 port.

// need to add this due to issues with security and .net 1.1

BinaryClientFormatterSinkProvider clientProvider = null;

BinaryServerFormatterSinkProvider serverProvider =

new BinaryServerFormatterSinkProvider();

serverProvider.TypeFilterLevel =

System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;

IDictionary props = new Hashtable();

props["bindTo"] = "10.0.0.155";// GetIPAddressFromDNSName("fuelcardservice.***.local");

props["port"] = 8085;

// need to add this due to issues with security and .net 1.1

props["typeFilterLevel"] = TypeFilterLevel.Full;

return new TcpChannel(

props,clientProvider,serverProvider);

}

/* It starts the Tcp Server.*/

public void startTcpServer()

{

// Sets Tcpchannnerl Server Properties

TcpChannel tsc = SetTcpProperties();

// Registering service to find over network

ChannelServices.RegisterChannel(tsc);

RemotingConfiguration.RegisterWellKnownServiceType(

typeof(Business.FuelCardFactory) , // Specify Marshallable Class

"FuelCardService" , // Specify Name of Marsha.

WellKnownObjectMode.Singleton); // It's very important while

// using Tcp and Http connection. Using Singleton it maintains

// the User objects while SingleCall doesn't stores the values.

}

----------------------------
Client Code :

private TcpChannel SetTcpProperties()

{

// need to add this due to issues with security and .net 1.1

BinaryClientFormatterSinkProvider clientProvider =

new BinaryClientFormatterSinkProvider();

BinaryServerFormatterSinkProvider serverProvider =

new BinaryServerFormatterSinkProvider();

serverProvider.TypeFilterLevel =

System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;

IDictionary props = new Hashtable();

// props["name"] = System.Guid.NewGuid().ToString();

props["bindTo"] = "10.0.0.155"; // IPAddress.Parse("ws183.smb.local").ToString(); // "10.0.0.155"; // GetIPAddressFromDNSName("fuelcardservice.smb.local");

props["port"] = 0; // this line gave me lot of trouble

props["typeFilterLevel"] = TypeFilterLevel.Full;

return new TcpChannel(props, clientProvider, serverProvider);

}

/// <summary>

/// It set Tcpchannel Properties, registered the channel,

/// finds interface object and create instance of FuelCard (BP, Caltex)

/// </summary>

/// <param name="FuelCardName"></param>

private void GetFuelCardServerInstance()

{

IChannel[] obj = ChannelServices.RegisteredChannels;

if (!(obj.Length >=1))

{

// Setting Tcpchannel Properties

TcpChannel chan = SetTcpProperties();

try

{

// It registers the Client to the TcpChannel so that it's

// session is maintained.

ChannelServices.RegisterChannel(chan);

WellKnownServiceTypeEntry wkste =

new WellKnownServiceTypeEntry(typeof(ICardOperation),

"FuelCardService",

WellKnownObjectMode.Singleton);

RemotingConfiguration.RegisterWellKnownServiceType( wkste );

 

}

catch(Exception tcpException)

{

Console.WriteLine(tcpException.StackTrace);

}

}

// assiging ICardNumber interface object to access Server Methods

Type typeofRI = typeof(ICardOperation);

// It gets the iCardOperation object from the second parameter given URI

// parameter and first parameter specifies the interface file name.

// Activator Creates a proxy for a currently running remote object,

// server-activated well-known object, or XML Web service.

iCardOperation = (ICardOperation)Activator.GetObject(typeofRI ,

"tcp://"+"10.0.0.155"+":8085/FuelCardService");

// IPAddress.Parse("ws183.smb.local").ToString()+":3111/FuelCardService");

// "10.0.0.155"+":3111/FuelCardService");

// GetIPAddressFromDNSName("fuelcardservice.smb.local")+":6123/FuelCardService");

if ( iCardOperation == null )

{

Console.WriteLine("Interface file couldn't find :( ");

}

}
------------------------------------------------------

Would you please help/suggest me where i am going wrong. Any help or guidence really appreciated.

Regards,
Tejas M.



Answer this question

Having difficulty running TCP remote client from other computer

  • Ben Nevarez

    Hi,
    It's look like .Net developers not have any issue in past with this type of problem :(.

    If you have any suggestion please suggest to this thread.

    Regards,
    Tejas.

  • Having difficulty running TCP remote client from other computer