HOW TO: Host a Remote Object in Microsoft Internet Information Services

Article translations Article translations
Article ID: 312107 - View products that this article applies to.
This article was previously published under Q312107
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

On This Page


Note The following .NET Framework Class Library namespaces are referenced in this article:


This article provides step-by-step instructions to host a remote object in Microsoft Internet Information Services. The article also provides instructions for how to build a simple client to call the remote object.

  • Microsoft Visual Studio .NET with Microsoft .NET Framework
  • Microsoft Internet Information Services (IIS)

Build a Simple Remote Object

  1. Using Visual Studio .NET, create a new Visual C# .NET Project by using the Class Library template. Name the project HelloWorldObject.
  2. Rename the Class1.cs file that is created by default to Hello.cs.
  3. Replace the entire code for Hello.cs with the following:
    using System;
    using System.Runtime.Remoting;
    namespace HelloWorldObject
    	public class Hello : MarshalByRefObject
    		public string HelloWorld(string str)
    			return "Hello World received " + str + " from the client";
  4. Right-click References in the Solution Explorer, and then select Add Reference. Add a reference to System.Runtime.Remoting.
  5. Build the solution.

Host the Remote Object in Microsoft Internet Information Services

  1. Create a new directory called HelloWorldWeb (preferably under \Inetpub\wwwroot\).
  2. Create a directory named bin beneath the HelloWorldWeb directory.
  3. Copy the HelloWorldObject.dll file from the HelloWorldObject\bin\debug\ directory to the HelloWorldWeb\bin\ directory.
  4. Use Notepad.exe to create a new file called Web.config. Copy the following text, and then save it in the HelloWorldWeb directory:
            <wellknown mode="SingleCall" type="HelloWorldObject.Hello, HelloWorldObject" objectUri="SimpleHelloWorld.soap" />
  5. Click Start, point to Programs, and then click Administrative Tools. Open Internet Services Manager.
  6. Create a virtual directory in IIS.
  7. Make the virtual directory alias SimpleHello, and then set the source directory to the HelloWorldWeb directory.

Build a Simple Console Application to Test the Remote Object

  1. Add a new Visual C# .NET project to the existing solution by selecting the Console Application template. Name the project Client.
  2. Rename the existing Class1.cs file to TestClient.cs.
  3. Replace the existing code in TestClient.cs with the following:
    using System;
    using System.Runtime.Remoting;
    using System.Runtime.Remoting.Services;
    using System.Runtime.Remoting.Channels;
    using System.Runtime.Remoting.Channels.Http;
    using HelloWorldObject;
    namespace Client
    	class TestClient
    		static void Main(string[] args)
    			HttpChannel http = new HttpChannel();
    			Hello obj = (Hello)Activator.GetObject(typeof(Hello),"http://localhost/SimpleHello/SimpleHelloWorld.soap");
    			Console.WriteLine(obj.HelloWorld("CLIENT APPLICATION"));
  4. Add references to the following:
    • System.Runtime.Remoting
    • HelloWorldObject.dll (by browsing to the location of the .dll file)
  5. Build the client application.
  6. Verify that the IIS server is started, and then run Client.exe, which is located in the debug\bin directory.


Microsoft .NET Remoting: A Technical Overview


Article ID: 312107 - Last Review: January 11, 2015 - Revision: 4.0
  • Microsoft .NET Framework Class Libraries 1.0
kbnosurvey kbarchive kbfix kbhowtomaster KB312107

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from