views:

45

answers:

1

Here's what I want to do. I have a program that many client devices communicate with (hundreds). Unfortunately, sometimes when I add new features, it requires me to make breaking changes that affect these clients. So typically we have to update the clients and the server at the same time.

So I had an idea in which I will just run every version of the app at the same time and have the web server understand and thus proxy the requests and responses. I started off with some code I found here at the codeproject site: http://www.codeproject.com/KB/IP/reverseproxy.aspx. This works okay, however; when I run it against my program, the session does not seem to work. To clarify, the session is not working in the original program that the proxy is reading to.

From what I understand, this proxy proxies cookie requests, gets, and posts. Does anyone have any ideas on what I can do to improve this?

Now, I know some folks will want to suggest using URL rewrite or Application Routing, however; I need to make decisions on what page to present based on the content of the posts/gets and not just the URL.

Additional information: I'm using IIS6 for prod on Windows 2003 servers.

+1  A: 

This won't help if you're already deployed, but if you need to change the semantics of the service, change the URL as well. Old clients use the old URL, which acts the way they want, and new ones use the new URL.

It's analogous to what you'd do if you were publishing an API -- you would not change a function's return if you had lot's of callers you couldn't control. Instead you'd add another function.

Lou Franco
I thought about that as well, but the issue is that this app is already deployed. Also, I want to use it for the sites that CSRs use as well. I don't want to direct them to use a different site every time I release a new version. But I can't upgrade them all at once every time.
Jason Thompson