Я узнаю об использовании Remoting в .NET. Я создал небольшое приложение, которое выполняет основную работу приветствия. код для RemoteObject является:Remoting in C# не работает
public class MyRemoteObjectClass:MarshalByRefObject
{
public MyRemoteObjectClass()
{
Console.WriteLine("Remote object created");
}
//return message reply
public String ReplyMessage(String msg)
{
Console.WriteLine("Client : " + msg);//print given message on console
return "Server : Yeah! I'm here";
}
}
Код для серверного класса является:
class MyServerClass
{
public MyServerClass()
{
}
static void Main(string[] args)
{
RemotingConfiguration.Configure("RemotingSettings_Server.xml",false);
Console.WriteLine("server activated");
Console.ReadLine();
}
}
Исходный код класса клиента:
class MyClientAppClass
{
static void Main(string[] args)
{
RemotingConfiguration.Configure("ClientSettings.xml",false);
Console.WriteLine("Settings read successfully");
MyRemoteObjectClass remObject = (MyRemoteObjectClass)Activator.GetObject(typeof(MyRemoteObject.MyRemoteObjectClass),"http://localhost:8989/MyRemoteObjectClass",WellKnownObjectMode.Singleton);
if (remObject == null)
Console.WriteLine("cannot locate server");
else
{ String res = remObject.ReplyMessage("You there?"); Console.WriteLine(res); Console.ReadLine(); }
}
}
Мои файлы конфигурации для сервера и клиента соответственно:
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown
mode="Singleton"
type="MyRemoteObject.MyRemoteObjectClass, MyRemoteObjectClass"
objectUri="MyRemoteObjectClass.rem"
/>
</service>
<channels>
<channel ref="http" port="8989"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
клиент:
<configuration>
<system.runtime.remoting>
<application>
<client>
<wellknown
type="MyRemoteObject.MyRemoteObjectClass, MyRemoteObjectClass"
url="http://localhost:8989/MyRemoteObjectClass.rem"
/>
</client>
</application>
</system.runtime.remoting>
</configuration>
Я первый построил DLL для удаленного объекта, скопировали DLL в обоих серверных и клиентских ехе местах. Затем я запустил сервер, а затем запустил клиент. Сервер создается, но клиентская программа содержит исключение, в котором говорится: «Удаление исключений: запрошенный сервис не найден».
Пожалуйста, помогите мне решить эту проблему и, возможно, это хорошее место, чтобы четко понять концепцию дистанционного управления.
Thanks, Rakesh.
Remoting безумно сложно и заведомо плохо документировано. Пропустите удаленный доступ и перейдите непосредственно в WCF. – Will