Re: 1st hosting of objects, new(), etc.

From: Sam Santiago (ssantiago_at_n0spam-SoftiTechture.com)
Date: 08/17/04


Date: Tue, 17 Aug 2004 13:14:12 -0700


    The New statement will create a local object on the server application
even if you have published a wellknown object of that type. On the client
application once you have registered a wellknown type in that app domain it
makes sense that New would attempt to create a remote object.
    Your issue is that either one of your applications can act as a server.
You might want to reconsider that. I think it is a bit risky to have an
ASP.Net application dependent on a remote object in a Windows Forms
application that can be shut down at will. With that said you might want to
try something like the pseudo code below in each application, I am not sure
if it would work:

obj1 = New Myojbect - Create a local instance of the object
bUseLocalObj = true
Register MyObject as a wellknown type
try
    obj2 = attempt to create another instance of your object (obj2 - should
be remote instance)
    bUseLocalObj = false
catch
    if error, remote object is not available, probably not been published
    Marshal obj1 to a URI
end try

if not bUseLocalObj then obj1 = obj2 (obj1 and obj2 are both Myobject
types, but obj2 is a proxy, so not sure what would happen)

Use obj1 throughout your application (may or may not be a proxy based on
what happened above)

Good luck.

Thanks,

Sam

-- 
_______________________________
Sam Santiago
ssantiago@n0spam-SoftiTechture.com
http://www.SoftiTechture.com
_______________________________
"Mike" <vimakefile@yahoo.com> wrote in message
news:eRSlNz$gEHA.3272@TK2MSFTNGP11.phx.gbl...
> I'd like to have the first-running application that references my object
> host a singleton server for the app's lifetime, and I'd like the hosting
> application to use a local (non-remoted, same process) version of the
> object.
> For instance, if my winforms app is the first app to need the object, it
> will do a registerWellKnownServerType on a singleton that is also used
> locally, and if an IIS application on the same machine runs first, I'll
> create a the local object and cache it in the ASP.Net Application object
and
> then register it. Otherwise, if one or the other is running, it will use a
> remoted version. Is it possible to have this
> local-and-remoted-access-to-the-same-singleton scenario work? (With
> appropriate lock()'s in case the local and remote context threads muck
with
> state at the same time.)
>
> The impetus is that I'd like a management console to be able to run w/o
IIS
> active, but most of the time I want the IIS application to host the object
> and have fast, local access to it. In the case that I run one or more
> managment consoles from local or remote machines with IIS already hosting
> the object, they will connect to the already running object.
>
> One problem is .Net's choice of implicit remote creating via new() which I
> don't really like. It seems like before a registerWellKnownClientType "new
> foo(...)" means one thing, and after the registration it means something
> else - an explict Remote.Create( typeof(foo), ...) seems cleaner.  Once
> rWKCT is called, how do I create local, non-remote, non-singlton versions
of
> the object if I wanted to?
>
> I guess in the case where the hosting app exits, it would cause an
exception
> on the client, or I could have the process stick around while there are
> still non-timed-out clients (unless IIS gets aggressive with an ostensibly
> zombified process.)
>
> thanks,
> mike
>
>


Relevant Pages

  • Registering a Remote Server With Client Tool
    ... A user at a workstation running the Personal Edition (client tools only) ... register using the sa account & password, ... This Windows user was already defined a a valid trusted login in the remote ... remote server, there is a box checked that reads "Allow other SQL Servers to ...
    (microsoft.public.sqlserver.security)
  • Re: Forward calls from remoting type to same type on another machine
    ... you can use a client and server on the same machine no problem. ... you don't need to register anything to connect to a remote ... (so that it choses any random port). ...
    (microsoft.public.dotnet.framework.remoting)
  • IIS & DreamWeaver
    ... I'm using IIS on a W2000 client as an internal host for testing sites ... The 'local' sites are on my machine; the remote ... The sites are created in IIS and all appears well. ... latest site when I setup the testing server details in Dreamweaver and point ...
    (microsoft.public.inetserver.iis)
  • Re: Pass FileStream over remoting channel
    ... All I want is just to upload file from client to server without calling a ftp program on the system... ... I use following lines to get the remote object. ... I tried to register channel on client side. ...
    (microsoft.public.dotnet.framework.remoting)
  • Re: Pass FileStream over remoting channel
    ... All I want is just to upload file from client to server without calling a ftp program on the system... ... I use following lines to get the remote object. ... I tried to register channel on client side. ...
    (microsoft.public.dotnet.framework.remoting)

Quantcast