I'm not sure I even understand half of what you wrote. It started out
clearly enough. It seems you were storing connection information in the
System Registry. Apparenlty, you needed to scale this to support multiple
databases, which I imagine means multiple sets of connection information.
However, after that it gets kind of fuzzy.
First, you never indicated what made you decide to change your design. You
can store as many Connection Strings, etc. in the Registry that you want.
Personally, I wouldn't even USE the registry (that's what web.config is
for), but I can't figure out why you had to redesign the entire app instead
of just that little section.
> The key
> information required now lives on the machine hosting the presentation
> layer
> (web server).
This is fuzzy. It indicates that "information" (data) resides on a machine.
That's all. It doesn't specify what form the data is in, how it is stored,
etc.
> Since I want to avoid passing the server/db information with
> every call into the middle tier, I have implemented a solution using
> IISIntrinsics to retrieve Session information (where I store the server/db
> properties). It works very well, but there is a great deal of
> consternation
> from the powers that be about the implementation and the possible impact
> on
> performance.
Okay, you start out here with a requirement, which is easy enough to
decipher. However, your solution definitely sounds weird. First of all, it
apparently refers to Session information on the web server, so I assume that
Session is being used in some context on the web server, and that this is
somehow related to the "Key information" that is stored on the web server.
However, what that relationship is, is not mentioned.
Assuming that the "middle tier" is a set of DLLs that reside in your web
application, on the web server, in the app's bin folder, there is no need
for such a gerrymandered solution. A business class can access the entire
HttpContext of a Request via HttpContext.Current. This includes Application,
Session, Server, Handler, and a few others.
Now, if you had implemented this solution, all of the COM+ issues would
disappear. Interop is generally a thing to be avoided with .Net. Still, I
can't help but think I must be missing something.
--
HTH,
Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.
"Ian Williamson" <Ian
> wrote in message
news

8E39980-63A3-4DBC-B198-...
> Greetings,
>
> My company has an ASP.NET based enterprise product that is undergoing some
> changes and I need some community input to help solve a problem.
>
> In the current implementation, any given installation of the product
> supports only one database at a time. The server/db information is stored
> in
> the registry on the computer hosting the com+ based middle tier. We are
> now
> moving to a solution which supports multiple databases. That is, the user
> is
> able to select from a list of available dbs at login.
>
> Because of this change, the registry information the middle tier uses to
> build up the db connection string is obviously no longer available. The
> key
> information required now lives on the machine hosting the presentation
> layer
> (web server). Since I want to avoid passing the server/db information
> with
> every call into the middle tier, I have implemented a solution using
> IISIntrinsics to retrieve Session information (where I store the server/db
> properties). It works very well, but there is a great deal of
> consternation
> from the powers that be about the implementation and the possible impact
> on
> performance.
>
> For IISIntrinsics to work, all the .aspx pages must have ASPCompat="true"
> added to the Page directive. This now means that we move from our pages
> running in MTA to running in STA. We have no native COM components
> running
> on any of our pages, so it is frustrating to have to set this flag when
> all I
> want are the Intrinsics of the page.
>
> I am wondering how other people have implemented solutions where the
> presentation layer has to provide the middle tier with connection
> information. I understand that Whidbey will not support ASPCompat, so
> does
> anyone know if there will be a way to retrieve Session data from a com+
> component hosted on another machine?
>
> Cheers, Ian Williamson
>
>