我是 .NET 远程处理和 C# 的新手。我需要一个客户端/服务器应用程序并希望使用 .NET Remoting 来处理这个问题。我为远程处理对象 EchoServer 类编写了一个类库,并带有一些测试方法。
我在 Visual Studio 中添加到我的服务器项目的类库。我也添加了程序集“System.Runtime.Remoting”。
以下是我的服务器的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using Remoting; //Namespace Lib
namespace Server
{
public partial class Server : Form
{
public Server()
{
InitializeComponent();
TcpChannel serverChannel = null;
try
{
serverChannel = new TcpChannel(9998);
lvStatus.Items.Add("Server is listening on port 8089...");
string strIn = "";
ChannelServices.RegisterChannel(serverChannel, true);
RemotingConfiguration.RegisterWellKnownServiceType(Type.GetType("Remoting.EchoServer, remoting_dll"), "Echo", WellKnownObjectMode.SingleCall);
}
catch (Exception ex)
{
ChannelServices.UnregisterChannel(serverChannel);
MessageBox.Show(ex.Message.ToString());
}
}
}
}
如果我启动服务器,我会得到一个异常:
该值不能为 NULL 参数名称:类型
我已经尝试了教程的其他代码,但是如果远程对象的类被实现为类库或者直接在我的项目中作为类,我将得到相同的异常。