如何:生成宿主应用程序

利用配置文件,您可以更改远程处理配置,而无须重新编译可执行文件等。有关 .NET 远程处理基础结构配置的详细信息,请参见远程处理设置架构

实现一个使用配置文件的简单宿主应用程序域

  1. 创建远程类的配置文件。宿主应用程序必须能够找到用来加载远程类的配置的配置文件,因此,该配置文件应该与宿主应用程序保存在同一目录下,否则,将找不到该配置文件并引发异常。以下代码显示宿主应用程序域的 Listener.exe.config 配置文件。

    <configuration>
       <system.runtime.remoting>
          <application>
             <service>
                <wellknown 
                   mode="Singleton" 
                   type="RemotableType, RemotableType" 
                   objectUri="RemotableType.rem"
                />
             </service>
             <channels>
                <channel ref="http" port="8989"/>
             </channels>
          </application>
       </system.runtime.remoting>
    </configuration>
    
  2. 导入 System.Runtime.Remoting 命名空间

    Imports System.Runtime.Remoting
    
    using System;
    using System.Runtime.Remoting;
    
  3. 加载配置远程类的配置文件。

    Public Class Listener
       Public Shared Sub Main()
          RemotingConfiguration.Configure("Listener.exe.config")
          Console.WriteLine("Listening for requests. Press Enter to exit...")
          Console.ReadLine()
       End Sub 'Main
    End Class 'Listener
    
    public class Listener{
       public static void Main(){
          RemotingConfiguration.Configure("Listener.exe.config");
       }
    }
    
  4. 使用 .NET Framework SDK 附带的命令行工具将该类编译成宿主或侦听器可执行文件,将该类另存为 Listener.language-extension(或使用您选择的其他文件名,其中的 language-extension 是您要编译的语言)。将该文件保存在用来保存如何:生成可远程处理的类型主题中生成的 RemotableType.dll 的那一目录中。在该目录中的命令提示符处,键入以下命令:

    vbc /r:RemotableType.dll Listener.vb
    
    csc /noconfig /r:RemotableType.dll Listener.cs
    

示例

' Listener.vb
Imports System
Imports System.Runtime.Remoting

Public Class Listener
   Public Shared Sub Main()
      RemotingConfiguration.Configure("Listener.exe.config")
      Console.WriteLine("Listening for requests. Press Enter to exit...")
      Console.ReadLine()
   End Sub 'Main
End Class 'Listener
// Listener.cs
using System;
using System.Runtime.Remoting;

public class Listener{
   public static void Main(){
      RemotingConfiguration.Configure("Listener.exe.config");
      Console.WriteLine("Listening for requests. Press Enter to exit...");
      Console.ReadLine();
   }
}

请参见

任务

如何:生成宿主应用程序

参考

远程处理设置架构

概念

远程应用程序的配置
服务器激活

其他资源

生成基本的 .NET Framework 远程处理应用程序