.Net remoting
-
I have actually been looking at something similar, specifically an in-house instant messaging set-up that would operate exclusively on our company network and off of the internet. The only examples of an IM system using WCF that I have been able to find involve web hosting and global internet capability; the stuff I've tried doesn't like our firewall. I don't suppose you can provide some links or other resources that might be useful? Even a few recent book titles would be nice, and I don't care whether they use C# or VB.net.
-
Okay, then what would you suggest I use then? These are the conditions in which it should work: 1) no webserver present (or other software, just the .net runtime) 2) need to change port & protocol at runtime dynamically. Thanx in advance!
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
Helfdane wrote:
- no webserver present (or other software, just the .net runtime)
Presumably you mean that you only want to use .Net to create the server. Because per your original requirements there is a server and a client. And if there is no server then the requirement does not exist.
Helfdane wrote:
- need to change port & protocol at runtime dynamically.
What specific business need requires this? Note that there is a signficant different between being able to run a server using a configured port and changing that same port (and handling clients as well) while the server is running.
-
Helfdane wrote:
- no webserver present (or other software, just the .net runtime)
Presumably you mean that you only want to use .Net to create the server. Because per your original requirements there is a server and a client. And if there is no server then the requirement does not exist.
Helfdane wrote:
- need to change port & protocol at runtime dynamically.
What specific business need requires this? Note that there is a signficant different between being able to run a server using a configured port and changing that same port (and handling clients as well) while the server is running.
The user should be able to change the port number in a console, not while the server is running. It happens often enough that some complementary software from another supplier takes the port we configured. So the sysadmin at the client site should be able to adjust it. Config files are a bridge too far and they get lost in them.
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
-
I have actually been looking at something similar, specifically an in-house instant messaging set-up that would operate exclusively on our company network and off of the internet. The only examples of an IM system using WCF that I have been able to find involve web hosting and global internet capability; the stuff I've tried doesn't like our firewall. I don't suppose you can provide some links or other resources that might be useful? Even a few recent book titles would be nice, and I don't care whether they use C# or VB.net.
If you can wait a couple of days, I'll knock something up this weekend. I'm a touch slammed right now.
I'm not a stalker, I just know things. Oh by the way, you're out of milk.
Forgive your enemies - it messes with their heads
-
If you can wait a couple of days, I'll knock something up this weekend. I'm a touch slammed right now.
I'm not a stalker, I just know things. Oh by the way, you're out of milk.
Forgive your enemies - it messes with their heads
Even a list of links would be great, thanks!
-
Even a list of links would be great, thanks!
I'll probably pop it on my blog.
I'm not a stalker, I just know things. Oh by the way, you're out of milk.
Forgive your enemies - it messes with their heads
-
The user should be able to change the port number in a console, not while the server is running. It happens often enough that some complementary software from another supplier takes the port we configured. So the sysadmin at the client site should be able to adjust it. Config files are a bridge too far and they get lost in them.
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
First what is "often enough"? Once day or once a year? Second that point still doesn't mean that the port needs to be changed while the application is running. One can provide a GUI to modify a config file and then provide a management app to bounce the server. Changing the port while running means that you MUST deal with the complication of txns in flight. And also deal with providing a timely notification to clients.
-
First what is "often enough"? Once day or once a year? Second that point still doesn't mean that the port needs to be changed while the application is running. One can provide a GUI to modify a config file and then provide a management app to bounce the server. Changing the port while running means that you MUST deal with the complication of txns in flight. And also deal with providing a timely notification to clients.
read my post again :-) The service is not necessarily running when the port is changed. And about often, if for every issue I need to send out a consultant to fix it, then even once a year is too often. If I could control everything from A to Z, then this would not be necessary, but I always try make sure the software is as robust as possible.
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
-
read my post again :-) The service is not necessarily running when the port is changed. And about often, if for every issue I need to send out a consultant to fix it, then even once a year is too often. If I could control everything from A to Z, then this would not be necessary, but I always try make sure the software is as robust as possible.
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
-
Helfdane wrote:
read my post again
I suggest you read your own post again.... "port & protocol at runtime dynamically."
First what is "often enough"? Once day or once a year? [quote]And about often, if for every issue I need to send out a consultant to fix it, then even once a year is too often. If I could control everything from A to Z, then this would not be necessary, but I always try make sure the software is as robust as possible.[/quote] As stated above. Second that point still doesn't mean that the port needs to be changed while the application is running. One can provide a GUI to modify a config file and then provide a management app to bounce the server.Changing the port while running means that you MUST deal with the complication of txns in flight. And also deal with providing a timely notification to clients. [quote]The user should be able to change the port number in a console, not while the server is running.[/quote] As stated above. What did I miss?
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
-
First what is "often enough"? Once day or once a year? [quote]And about often, if for every issue I need to send out a consultant to fix it, then even once a year is too often. If I could control everything from A to Z, then this would not be necessary, but I always try make sure the software is as robust as possible.[/quote] As stated above. Second that point still doesn't mean that the port needs to be changed while the application is running. One can provide a GUI to modify a config file and then provide a management app to bounce the server.Changing the port while running means that you MUST deal with the complication of txns in flight. And also deal with providing a timely notification to clients. [quote]The user should be able to change the port number in a console, not while the server is running.[/quote] As stated above. What did I miss?
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
-
Okay, then what would you suggest I use then? These are the conditions in which it should work: 1) no webserver present (or other software, just the .net runtime) 2) need to change port & protocol at runtime dynamically. Thanx in advance!
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
Helfdane wrote:
- need to change port & protocol at runtime dynamically.
You have a server which processing something and you wish to remotely manage it. Your possibilities are the following 1. Provide functionality in the application itself which allows you to manage all parts (that you want to administer.) This is limited to the extent that you cannot start the application, but you can stop it. 2. Used a freeware or commercial product specifically designed to manage other processes. An example of this is Microsoft Operations Manager (MOM) and the Windows Management Instrumentation API. Generic term for that seems to be "web based enterprise management" (or at least that is good enough.) 3. Write your own management application. 4. Manually manage it, say via SSH. I have used all of those except 2. I tried using MOM and decided it was too complex. Simplicity is important with the third since otherwise one ends up with a chicken and egg problem in that one must administer that app as well. The problem with the first is that some problems will require a restart. Additionally certainly some business situations it is difficult to handle requests that are in flight via sockets when the port changes. I prefer 3 but the downside is that it must be kept simple. The simplest functional model is to have it do nothing but start the app. Then one can use 1 with a non-dynamic model in use (modify the config file then restart to pick up the changes.) A more complex version is to have it verify that the target app is up and start it if it isn't. And it can also stop and start the app.
-
I'll probably pop it on my blog.
I'm not a stalker, I just know things. Oh by the way, you're out of milk.
Forgive your enemies - it messes with their heads
I think I've solved my issue :-) Took me a while to figure it out, but I now have a working solution. I'll post it on my own blog when I have the time to do it. Posted here.[^] What my problem was, I was using MarshalByRef on the objects I tried to transmit, at least I'm guessing this was the culprit. The working solution for me was to replace MarshalByRef with [Serializable] and use the tcp-channel instead of the http-channel. In addition, in the client I replaced the code which registered the server object as WellKnownClientType with the Activator.GetObject() routine. The server object is still using MarshalByRef and is in the Singleton mode. Now I have a working client/server. I'm not sure if my solution is "legal", but it gets the job done :-) -edit with blog link-
A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
modified on Sunday, April 17, 2011 5:33 PM
-
I have actually been looking at something similar, specifically an in-house instant messaging set-up that would operate exclusively on our company network and off of the internet. The only examples of an IM system using WCF that I have been able to find involve web hosting and global internet capability; the stuff I've tried doesn't like our firewall. I don't suppose you can provide some links or other resources that might be useful? Even a few recent book titles would be nice, and I don't care whether they use C# or VB.net.