私は .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 にすることはできません パラメータ名: type
チュートリアルの他のコードを試してみましたが、リモート オブジェクトのクラスがクラス ライブラリとして実装されているか、プロジェクトに直接クラスとして実装されている場合と同じ例外が発生します。