Help and Support

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

Article ID:312107
Last Review:April 17, 2003
Revision:4.0
This article was previously published under Q312107
On This Page

SUMMARY

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

System.Runtime.Remoting

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.

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

Back to the top

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.

Back to the top

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:
<configuration>
  <system.runtime.remoting>
    <application>

      <service>
        <wellknown mode="SingleCall" type="HelloWorldObject.Hello, HelloWorldObject" objectUri="SimpleHelloWorld.soap" />
      </service>

    </application>
  </system.runtime.remoting>
</configuration>
						
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.

Back to the top

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
	{

		[STAThread]
		static void Main(string[] args)
		{
			HttpChannel http = new HttpChannel();
			ChannelServices.RegisterChannel(http);

			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.

Back to the top

REFERENCES

Microsoft .NET Remoting: A Technical Overview (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/hawkremoting.asp)

Back to the top


APPLIES TO
Microsoft .NET Framework Class Libraries 1.0

Back to the top

Keywords: 
kbfix kbhowtomaster KB312107

Back to the top

Article Translations

 

Related Support Centers

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.