Microsoft KB Archive/312107

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

Article ID: 312107

Article Last Modified on 4/17/2003

-

APPLIES TO


 * Microsoft .NET Framework Class Libraries 1.0

-



This article was previously published under Q312107



IN THIS TASK
SUMMARY
 * Build a Simple Remote Object
 * Host the Remote Object in Microsoft Internet Information Services
 * Build a Simple Console Application to Test the Remote Object

REFERENCES



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
 Using Visual Studio .NET, create a new Visual C# .NET Project by using the Class Library template. Name the project HelloWorldObject . Rename the Class1.cs file that is created by default to Hello.cs .  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 &quot;Hello World received &quot; + str + &quot; from the client&quot;; }   } }                         Right-click References in the Solution Explorer, and then select Add Reference. Add a reference to System.Runtime.Remoting. Build the solution.

back to the top

Host the Remote Object in Microsoft Internet Information Services
 Create a new directory called HelloWorldWeb (preferably under \Inetpub\wwwroot\).</li> Create a directory named bin beneath the HelloWorldWeb directory.</li> Copy the HelloWorldObject.dll file from the HelloWorldObject\bin\debug\ directory to the HelloWorldWeb\bin\ directory.</li>  Use Notepad.exe to create a new file called Web.config. Copy the following text, and then save it in the HelloWorldWeb directory: <system.runtime.remoting>

<wellknown mode=&quot;SingleCall&quot; type=&quot;HelloWorldObject.Hello, HelloWorldObject&quot; objectUri=&quot;SimpleHelloWorld.soap&quot; />

</system.runtime.remoting> </li> Click Start, point to Programs, and then click Administrative Tools. Open Internet Services Manager.</li> Create a virtual directory in IIS.</li> Make the virtual directory alias SimpleHello, and then set the source directory to the HelloWorldWeb directory.</li></ol>

back to the top

Build a Simple Console Application to Test the Remote Object
 Add a new Visual C# .NET project to the existing solution by selecting the Console Application template. Name the project Client .</li> Rename the existing Class1.cs file to TestClient.cs .</li>  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),&quot;http://localhost/SimpleHello/SimpleHelloWorld.soap&quot;); Console.WriteLine(obj.HelloWorld(&quot;CLIENT APPLICATION&quot;)); }   } }                        </li> Add references to the following: <ul> System.Runtime.Remoting</li> HelloWorldObject.dll (by browsing to the location of the .dll file)</li></ul> </li> Build the client application.</li> Verify that the IIS server is started, and then run Client.exe, which is located in the debug\bin directory.</li></ol>

back to the top

<div class="references_section">