IPC Remoting "pipe is being closed"

dotnet framework


  • 1. Load Balancing .Net components: what else is needed ?
    I'm trying to understand exactly what technologies I need in order to implement a distributed layer that is comprised of 100% .Net assemblies. Do I need App Centre ? If so, must all components inherit from ServicedComponent and be deployed a COM+ objects ? (I really hope this is not the case....) Can I use NLB alone ? (this results would be desirable ....) Any assistance or references to <definitive> resources would be much appreciated.
  • 2. How do you get the URL of a remoted object?
    I'm using RemotingServices.Marshal to register an object with remoting and then want to get the URL (not just URI) of the object so I can pass it to a server which will make callbacks. The code looks something like this: if(ChannelServices.GetChannel("tcp") == null) { ChannelServices.RegisterChannel(new System.Runtime.Remoting.Channels.TcpChannel(0)); } RemotingServices.Marshal(this, "ThisObject"); string url = RemotingServices.GetObjectUri(this); // I know this is wrong, but I'm not sure what I should call. m_remoteEventSender.RegisterForEvents(url); How can I get the TCP url for this object if I don't know the port?
  • 3. Best way to convert byte array (from TCP socket) to C# Object?
    Hi All, Basically my situation is this, I have a server implemented in C++, unmanaged code, using proprietery protocol over TCP/IP to communicate with the cilent(c++ also). Now, I am implementing the another client in C#. Server side can not be changed :( So, I am using tcp/ip sockets. In the end I get byte[] on the client side, which originally was some C++ class object, converted to byte array. What is the most efficient way to convert that byte array to C# object? I've checked few sources, writing custom serializer doesn't seem to be a good idea, as the serialize will receive a stream object, which only has byte read. So far the best I've come up with is to create BinaryReader based on the NetworkStream which in turn is created from the socket. More or less works, but string reading is a hassle, because the server won't send it in the format needed by BinaryReader, and I have to create 2 additional objects. Is there anything that can operate on byte[] to read simple types from it based on the offset and length? I.e. interpret bytes as a type?

IPC Remoting "pipe is being closed"

Postby Olie » Tue, 21 Nov 2006 23:26:24 GMT

I am using IPC pipes for remoting but I every now and then one of the
pipes stops working. It is with the regularity of about once a day but
can sometimes be quicker. It is not because I do not haave a sponsor
because I do and also that timeout is set for every 5 minutes.

It is in the event intermediate object that it goes wrong. I have
several of these objects that are all used with the same regularity. It
is only ever one object that fails, if you try and write to the object
you get the following exception:

System.Runtime.RemotingException: Failed to write to an IPC Port: The
pipe is being closed.

My only suspicion is that it si connected to the network adapter as
this is constantly cycling between connected and disconnected and it
tends to always go wrong when it disconnects. However I switched to IPC
pipes so that it had nothing to do with networking. In my mind this
should not have anything to do with it.

If anyone can shed some light on this I will be very greatful.


Similar Threads:

1.Is .net remoting what I am looking for?

Hi, absolute beginner here, only been playing around with remoting for
a couple of days.

we have an image database frontend program, and we want to add a cache
server to it.
My original idea was to have our main program and the server
communicate with each other via events, but it seems Named Events are
mainly for synchronization only as they dont carry data.

So now I am looking at remoting, and have written a CachingOperation
class that I guess could travel between the two programs, or reside in
the server and be accessable by the main program.

So far it seems the "server" in remoting is more just a simple thing
that responds to a channel by creating objects for the client to use.
Can the server also interact with these objects?

At the moment, I have the client creating these caching operation
objects on the server, and filling them in etc. What I havent quite
achieved yet is adding a bit of functionality to the server, ie, going
through a list of these operations, performing them, updating them,
and somehow signalling the client that the operation is complete.

Does this still fit in to the server concept of remoting or will I
need a second client who can somehow access the same objects that the
client creates, or should I somehow move all my server functionality
into the CachingOperation objects themselves?

Thanks a lot.


2.loosing Collection properties when I am Closing MS Visual Studio IDE

Hi All

I have a Collection property in my custom datagrid control ..
when I am adding values in this collection it updates and adds the
design code also..
But when  I am Closing MS Visual Studio IDE I am loosing Collection
properties .. but the code generated is still there ...

How to retain the values in the Collection property in different Visual
Studio sessions...??


3.IPC: Port is Busy: All pipe instances are busy


have anyone received this error message on client while using IPC?
We have received this error once and can't reproduce once more, it's very 
Our server process acts as layer for hosting very unstable component which 
can lead to coredumps, etc., so:
what can happen on server remote end so client receives such error? (also 
how can we reproduce it again?)

4.IPC / Named pipes

5.vb.net - IPC named pipes or shared memory


I need to communicate between two processes. I tryed using named pipes, but 
I'm afraid it's too complex for me...

I'd like to explain what I need. The two processes must just exchange an 
array of two bytes. The successive writes should overwrite the previous ones. 
For example, the process A sends byte0=7, byte1=9 and then it sends byte0=8, 
byte1=10. The process B reads only after the second array is sent. The read 
array should be byte0=8, byte1=10, the first array should not be read. So 
every process must always see only the last array of bytes.

As I've said above, I've not been able to do it using named pipes. So I did 
it using the FileSystem class, and it works. But I would need a faster 

Can you please show me how to do the same in memory?

6. IPC: Shared Files vs. Named Pipes

7. Web serice works when I am debugging, but does not when I am not.

8. a couple remoting questions (.net 2.0 - ipc)

Return to dotnet framework


Who is online

Users browsing this forum: No registered users and 34 guest