.NET Remoting

  • Thread starter Thread starter Softwaremaker
  • Start date Start date
S

Softwaremaker

<Quote>
In .NET Remoting,...However, calling a component through remoting does not
maintain transactional integrity and security context
</Quote>

Dear fellows,

Was wondering if anyone care to shed some light on the above sentence, esp
the part on .NET Remoting Component not maintaining transactional integrity
and security context ???

Thank you.
 
Hello,

Thanks for your post. I'd like to share the following information with you
for better understanding transactional integrity and security context:

=============================
There are many variations of how to expose serviced components remotely.
Serviced components can be accessed remotely using:

1).The HTTP channel with serviced components called from or written in
ASP.NET offers good security and encryption options, along with known
scalability and performance. When used with SOAP, more interoperability
options exist. Serviced components can be hosted in IIS/ASP.NET as a COM+
library application. If a COM+ server application is used, the IIS/ASP.NET
host can access the components using DCOM.

2).An alternative way to expose a serviced component as a SOAP endpoint is
discussed in COM+ Web Services: The Check-Box Route to XML Web Services.

3).DCOM when serviced components are hosted in Dllhost. This option offers
optimal performance and security and the ability to pass service contexts
cross-machine. The major design question when choosing a remoting
technology should be whether or not the services need to flow across
machines. For instance, within a server farm where a transaction is created
on one machine and it is required for the transaction to continue on
another machine, DCOM is the only protocol that can be used to achieve
this. However, if clients need to simply call a remote ServicedComponent,
then the HTTP channel or SOAP endpoint approaches are good alternatives.

4).A .NET remoting channel (for instance, a TCP or custom channel). To use
the TCP channel you need a process listening on a socket. In general, a
custom process is used to listen on a socket and then host serviced
components either as a COM+ library or server application. Alternatively,
Dllhost can be used as the listener. Either approach is least likely to be
used and would require writing a custom socket listener with proven
performance, scalability and security. Therefore, the ASP.NET or DCOM
solutions are the best approaches for most projects.
==========================

If the component is configured in COM+ dllhost, the communication between
the client and the servicedcomponent is based on the DCOM, instead of
Remoting. So, the remoting is not involved for the ServicedComponent's
transaction and security context.

For more information, please refer to the MSDN article:

Understanding Enterprise Services (COM+) in .NET
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/ht
ml/entserv.asp

Please feel free to let me know if you have any problems or concerns.

Regards,

HuangTM
Microsoft Online Partner Support
MCSE/MCSD

Get Secure! -- www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.
 
Hi Tian,

Thank you very much for the tip.

However, while I understand that if you need transactional integrity and
security context, you should use EnterpriseServices (COM+), I would just
like to know why its cannot be done via .NET Remoting.

Thanks so much again.

+++++++++++++++++++++++++++
 
Hello,

Thanks for your feedback. As far as I know, it's not supported via .NET
Remoting. I will contact our Developer Team to get more information.

Have a nice day!

Regards,

HuangTM
Microsoft Online Partner Support
MCSE/MCSD

Get Secure! -- www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.
 
Hi,

After further research on my side, now I'd like to share the following
information with you:

1. Transcational context doesn't flow over Remoting calls. This is expected
behavior. .NET Remoting has no support for COM+ context flow.

2. It is NOT suggested to call the ServicedComponent via remoting. You need
to call the ServicedComponent, which is hosted in DLLHost.exe, via DCOM
method as I mentioned before, in order to enable transaction.

For more information, please refer to the following article:

INFO: Exposing ServicedComponents As a Remoting Endpoint from a COM+
Dllhost.exe Process Is Not Supported
http://support.microsoft.com/?id=322627

.NET Framework Developer's Guide Writing Serviced Components
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/htm
l/cpconwritingservicedcomponents.asp

Understanding Enterprise Services (COM+) in .NET
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/ht
ml/entserv.asp

Does this answer your question?

Regards,

HuangTM
Microsoft Online Partner Support
MCSE/MCSD

Get Secure! -- www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.
 
Back
Top