List of Figures

Chapter 2: .NET Remoting Basics

Figure 2-1: The .NET Remoting architecture (simplified)
Figure 2-2: Client output for first sample
Figure 2-3: Server output for the first sample
Figure 2-4: Client's output when validating a customer
Figure 2-5: Server's output while validating a customer

Chapter 3: Remoting in Action

Figure 3-1: Client's output for a SingleCall object
Figure 3-2: Server's output for a SingleCall object
Figure 3-3: Client's output for a Singleton object
Figure 3-4: Server's output for a Singleton object
Figure 3-5: The second client's output when calling a Singleton object
Figure 3-6: Server's output after the second call to a Singleton object
Figure 3-7: Client's output when calling a published object
Figure 3-8: Server's output when publishing the object
Figure 3-9: Client-side output when using CAOs
Figure 3-10: Server-side output when using CAOs
Figure 3-11: Client-side output when using a factory object
Figure 3-12: Server-side output when using a factory object
Figure 3-13: The client receives an exception because the object has timed out.
Figure 3-14: The server when overriding InitializeLifetimeService()
Figure 3-15: Client's output when using synchronous calls
Figure 3-16: Server's output when called synchronously
Figure 3-17: The sample delegate
Figure 3-18: Client output when using asynchronous calls
Figure 3-19: Server's output when called asynchronously
Figure 3-20: Client output when using one-way methods
Figure 3-21: Client output when removing the [OneWay()] attribute
Figure 3-22: Output on the server—independent of [OneWay()] attribute
Figure 3-23: ObjRefs are pointing to server-side objects.
Figure 3-24: UML diagram of the multiserver example
Figure 3-25: Client and single server
Figure 3-26: Client calls a method on the second server with MRO#1 as parameter.
Figure 3-27: Calls to the first server will go there directly without passing the client
Figure 3-28: The client's output
Figure 3-29: The first server's output
Figure 3-30: The second server's output
Figure 3-31: SoapSuds command line used to generate a wrapped proxy
Figure 3-32: Client's output when using a wrapped proxy
Figure 3-33: The server's output shows that doSomething() has been called.
Figure 3-34: SoapSuds command line for a metadata-only assembly
Figure 3-35: The client's output when using a metadata-only assembly
Figure 3-36: The server's output is the same as in the previous example.

Chapter 4: Configuration and Deployment

Figure 4-1: SoapSuds command line for extracting the metadata
Figure 4-2: The Generated_General.dll that has been created by SoapSuds
Figure 4-3: The original General.dll contains the method Customer.GetAge().
Figure 4-4: SoapSuds command line for generating C# code
Figure 4-5: Client's output when using the configuration file
Figure 4-6: Servers's output when using the configuration file
Figure 4-7: Trying to start a Windows service from the IDE
Figure 4-8: Installing a service using installutil.exe
Figure 4-9: The service has been installed successfully.
Figure 4-10: The server's output in the EventLog
Figure 4-11: Uninstalling a service using installutil.exe
Figure 4-12: Configuring authentication methods

Chapter 5: Securing .NET Remoting

Figure 5-1: Authentication is necessary when accessing the remote objects.
Figure 5-2: Incorrect username/password combination
Figure 5-3: The user is in the correct group.
Figure 5-4: The user is not a member of the required group.
Figure 5-5: Enabling Windows authentication

Chapter 6: In-Depth .NET Remoting

Figure 6-1: Client-side output when dealing with different lifetimes
Figure 6-2: Server-side output when dealing with different lifetimes
Figure 6-3: The configured server behaves as expected.
Figure 6-4: You've been calling an expired object's method.
Figure 6-5: Client-side output when using a sponsor
Figure 6-6: Client-side output when running with server-side sponsors
Figure 6-7: Server side output when running with server-side sponsors
Figure 6-8: Server-side output when the client is stopped during execution
Figure 6-9: Running sn.exe to generate a key pair
Figure 6-10: Registering the first version in the GAC
Figure 6-11: Displaying the strong name for an assembly
Figure 6-12: Output of the client using the v1.0.0.1 SAO
Figure 6-13: GAC contents after installing the second assembly
Figure 6-14: Version 1 client running
Figure 6-15: Version 2 client running
Figure 6-16: Using a delegate with a SoapSuds-generated DLL
Figure 6-17: SAOs work asynchronously when removing the SoapType attribute.
Figure 6-18: The clients will be contacted by the server.
Figure 6-19: An exception occurs when combining the delegate with the remote event.
Figure 6-20: Event handling with an intermediate wrapper
Figure 6-21: The client is waiting for messages.
Figure 6-22: Remote events now work successfully!

Chapter 7: Inside the Framework

Figure 7-1: Simplified version of the .NET Remoting architecture
Figure 7-2: Proxies with identity
Figure 7-3: Client-side synchronous message handling (partial)
Figure 7-4: Browsing to the ObjRef's properties in the Locals window
Figure 7-5: Locating the ObjRef in the Locals window
Figure 7-6: Client-side layers and message stages
Figure 7-7: Server-side messaging layers
Figure 7-8: Sinks from the ServerIdentity object
Figure 7-9: First phase of an asynchronous call
Figure 7-10: SinkStack before call to first custom IMessageSink
Figure 7-11: SinkStack before call to SoapClientFormatterSink
Figure 7-12: SinkStack before call to first custom IClientChannelSink
Figure 7-13: SinkStack before call to HttpClientTransportSink
Figure 7-14: Handling an asynchronous response
Figure 7-15: The ClientChannelSinkStack before the first sink is called
Figure 7-16: The stack before the call to the SOAP formatter

Chapter 8: Creation of Sinks

Figure 8-1: Chain of providers
Figure 8-2: IChannel with populated sink providers
Figure 8-3: Creation of sinks from a chain of providers
Figure 8-4: The first IMessageSink is connected to the TransparentProxy.
Figure 8-5: The HttpServerChannel's default sink chain
Figure 8-6: The complete server-side HTTP channel's sink stack

Chapter 9: Extending .NET Remoting

Figure 9-1: Client-side sink chain with the compression sink
Figure 9-2: Server-side sink chain with the compression sink
Figure 9-3: TCP trace of an HTTP/SOAP connection
Figure 9-4: TCP trace of an HTTP connection with compressed content
Figure 9-5: The compressed HTTP request
Figure 9-6: The compressed HTTP response
Figure 9-7: A TCP-trace of the encrypted HTTP traffic
Figure 9-8: The test client's output shows that the sinks work as expected.
Figure 9-9: The default combination of proxy objects
Figure 9-10: Using the custom proxy to dump the messages' contents

Chapter 10: Developing a Transport Channel

Figure 10-1: These user accounts are needed for these examples.
Figure 10-2: Preparing the core modules

Chapter 11: Context Matters

Figure 11-1: The application's output when using the ContextBoundObject
Figure 11-2: The client's illegal operation is prohibited by the CheckerSink.

Advanced  .NET Remoting C# Edition
Advanced .NET Remoting (C# Edition)
ISBN: 1590590252
EAN: 2147483647
Year: 2002
Pages: 91
Authors: Ingo Rammer © 2008-2017.
If you may any questions please contact us: