В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Как создать удаленный сервер с помощью Microsoft Visual C#

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 307445
Для версии Microsoft Visual Basic .NET в данной статье см. 300951.

В данной статье относится к следующие пространства имен библиотеки классов Microsoft платформа.NET Framework:
  • System.Runtime.Remoting
  • System.Runtime.Remoting.Channels
  • System.Runtime.Remoting.Channels.Tcp

В ЭТОЙ ЗАДАЧЕ

Аннотация
В этой статье показано, как создать простой, удаленный сервер, можно получить доступ к другим приложением. Приложение, которое обращается к этому серверу может располагаться на том же компьютере, на другом компьютере или в другой сети. Удаленный сервер разбивается на две части: объект сервера и сервера приложений. Серверный объект является объектом, клиент взаимодействует с и приложение-сервер используется для регистрации объекта server framework во время выполнения удаленного взаимодействия.

back to the top

Требования

В следующем списке представлены оборудования, программного обеспечения, сетевой инфраструктуры и пакетов обновления, которые необходимо будет:
  • Visual Studio .NET
  • Visual Studio 2005
Предполагается, что вы знакомы со следующими разделами:
  • Visual Studio .NET или Visual Studio 2005
  • C# .NET или Visual C# 2005
  • Работа в сети
back to the top

Создание удаленного серверного объекта

Первым шагом в создании серверного приложения является создание объекта сервера. Объект server является то, что клиентское приложение создает экземпляр и взаимодействует с компьютера сервера. Клиентское приложение выполняет это посредством прокси-объект, создаваемый на клиентском компьютере. В этом примере объект-сервер находится в библиотеки классов (DLL) и называется myRemoteClass.
  1. Создайте новое приложение библиотеки классов в Visual C# .NET. Назовите проект ServerClass. По умолчанию будет создан класс Class1.
  2. В обозревателе решений щелкните переименуйте toServerClass.cs файла Class1.cs кодом.
  3. Откройте ServerClass.cs и переименуйте класс Class1 в myRemoteClass. Youalso необходимо переименовать конструктор по умолчанию для класса, чтобы его имя класса matchesthe. myRemoteClass должны наследовать от класса MarshalByRefObject . Класс теперь должна выглядеть следующим образом:
    public class myRemoteClass: MarshalByRefObject{	public myRemoteClass()	{		// 		// TO DO: Add constructor logic here.		// 	}}					
  4. Добавьте открытый метод myRemoteClass , который принимает строку, выводит сообщение на консоль с avalue строки и возвращает True, если строка не пуста.
    public bool SetString(String sTemp) {	try	{		Console.WriteLine("This string '{0}' has a length of {1}", sTemp, sTemp.Length);		return sTemp != "";	}	catch	{		return false;	}}					
  5. Постройте проект, чтобы создать ServerClass.dllassembly.
  6. Сохраните и закройте проект.
back to the top

Создание приложения удаленного сервера

После создания объекта сервера, клиент будет связываться с с инфраструктурой удаленного взаимодействия необходимо зарегистрировать этот объект. При регистрации объекта необходимо запустить сервер и сервер на порт для подключения клиентов к этому порту. Для этого необходимо, чтобы тип проекта, который выводит исполняемый файл.

Чтобы включить объект сервера в отдельном проекте объясняется таким образом, легко можно обращаться к объекту сервера из клиентского проекта. При включении в проект нельзя ссылаться, поскольку ссылки может быть установлен только для DLL-файлов.
  1. Создайте новое консольное приложение в Visual C# .NET для удаленного сервера startthe. По умолчанию будет создан класс Class1 .
  2. Переименуйте toRemoteServer.cs файл Class1.cs в обозревателе решений.
  3. Добавьте ссылку на пространство имен System.Runtime.Remoting .
  4. Добавьте ссылку на сборку ServerClass.dll, youcreated в предыдущем разделе.
  5. Использование инструкции using для пространства имен удаленного взаимодействия, Remoting.Channelsи Remoting.Channels.TCP таким образом, не требуется определять declarationsin эти пространства имен в коде. Необходимо использовать оператор using перед всеми остальными объявлениями.
    using System.Runtime.Remoting;using System.Runtime.Remoting.Channels;using System.Runtime.Remoting.Channels.Tcp;					
  6. Объявите соответствующую переменную. Объявите и инициализируйте объект TcpChannel , который осуществляет прослушивание клиентов подключиться на определенный порт, который используется порт 8085 в этом примере. Используйте метод RegisterChannel , чтобы зарегистрировать канал со службами канала. Добавьте в процедуру Main класса Class1 экран код объявления:
    TcpChannel chan = new TcpChannel(8085);ChannelServices.RegisterChannel(chan);					
  7. Вызовите метод RegisterWellKnownType объекта RemotingConfiguration для регистрации объекта ServerClass с инфраструктурой удаленного взаимодействия и укажите followingparameters:
    • Полное имя типа объекта, который регистрируется (который в данном примере — ServerClass.myRemoteClass ), а затем имя сборки ServerClass. Укажите имя пространства имен, как, так и имя класса. Поскольку пространство имен не было задано в предыдущем разделе, используется корневое пространство имен по умолчанию.
    • Имя конечной точки, где объект — публикуется как RemoteTest. Клиенты должны знать это имя для подключения к объекту.
    • Позволяет указать последний параметр режим объекта SingleCall . Режим объекта определяет времени существования объекта, если он активирован на сервере. В случае объектов SingleCall новый экземпляр класса создается для каждого вызова, клиент делает, даже если один клиент вызывает несколько раз. С другой стороны объекты Singleton создаются только один раз, и все клиенты взаимодействуют с тем же объектом.
      RemotingConfiguration.RegisterWellKnownServiceType(	System.Type.GetType("ServerClass.myRemoteClass, ServerClass"), 	"RemoteTest", 	WellKnownObjectMode.SingleCall);						
  8. Метод ReadLineконсольных объектов для сохранения на сервере приложение.
    System.Console.WriteLine("Hit <enter> to exit...");System.Console.ReadLine();						
  9. Постройте проект.
  10. Сохраните и закройте проект.
back to the top

Тестирование сервера объектов

Дополнительные сведения о том, как создать клиентское приложение, взаимодействующее с объектом сервера, только что создан, щелкните следующий номер статьи базы знаний Майкрософт:
300943 Создание клиентского доступа к удаленному серверу с помощью Visual Basic .NET
back to the top

ССЫЛКИ

Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
301116 Как выполнить маршалинг по ссылке объект на удаленном сервере с помощью Visual Basic .NET
301112 Как выполнить маршалинг по ссылке объект на удаленном сервере с помощью Visual Basic .NET
Дополнительные сведения о классе TcpChannel посетите следующий веб-узел Microsoft Developer Network (MSDN):
Дополнительные сведения о методе RemotingConfiguration.RegisterWellKnownServiceType следующем веб-узле MSDN:Обзор удаленного взаимодействия .NET документация руководство разработчика платформа.NET Framework см.
back to the top

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 307445 — последний просмотр: 06/12/2016 05:47:00 — редакция: 6.0

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbchannels kbhowtomaster kbtunneling kbmt KB307445 KbMtru
Отзывы и предложения