Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

ILease lease = (ILease)obj.GetLifetimeService;

if (lease != null) {

 Console.WriteLine("Lease Configuration:");

 Console.WriteLine(

"InitialLeaseTime: " + lease.InitialLeaseTime);

 Console.WriteLine(

"RenewOnCallTime: " + lease.RenewOnCallTime);

 Console.WriteLine(

"SponsorshipTimeout: " + lease.SponsorshipTimeout);

 Console.WriteLine(lease.CurrentLeaseTime);

}

В результате получается следующий вывод в окне клиентской консоли:

Изменение используемых по умолчанию конфигураций аренды

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

System.Runtime.Remoting.Lifetime.LifetimeServices
:

LifetimeServices.LeaseTime = TimeSpan.FromMinutes(10);

LifetimeServices.RenewOnCallTime = TimeSpan.FromMinutes(2);

Если требуются другие используемые по умолчанию значения параметров времени жизни, в зависимости от типа удаленного объекта, можно изменить конфигурацию аренды удаленного объекта, переопределяя метод

InitializeLifetimeService
базового класса
MarshalByRefObject
:

public class Hello : System.MarshalByRefObject {

 public Hello {

Console.WriteLine("Constructor called");

 }

 ~Hello {

Console.WriteLine("Destructor called");

 }

 public override Object InitializeLifetimeService {

ILease lease = (ILease)base.InitializeLifetimeService;

lеase.InitialLeaseTime = TimeSpan.FromMinutes(10);

lease.RenewOnCallTime = TimeSpan.FromSeconds(40);

return lease;

 }

}

Конфигурация служб времени жизни также задается с помощью конфигурационного файла.

Конфигурационные файлы

Вместо записи конфигурации канала и объекта в исходном коде, можно использовать конфигурационные файлы. Таким способом реконфигурируют канал, добавляют дополнительные каналы и т.д., не изменяя исходный код. Для этого, как и для всех других конфигурационных файлов на платформе .NET. используется XML на основе тех же самых приложений, о которых было написано в главе 10. В те же самые файлы в главе 25 будет добавлена конфигурация системы безопасности. В .NET Remoting имеются атрибуты и элементы XML для конфигурирования канала и удаленных объектов. Файл должен иметь то же самое имя, что и исполнимый файл, за которым следует

.config
. Для сервера
HelloServer.exe
конфигурационным файлом будет
HelloServer.exe.config
. В коде, загружаемом с web-сайта издательства Wrox, можно найти примеры конфигурационных файлов в корневом каталоге примеров с именами
clientactivated.config
,
wellknown.config
и
wellknownhttp.config
. Чтобы воспользоваться ими, переименуйте их, как показано выше, и поместите в каталог, содержащий исполнимый файл.

Вот только один пример, как мог бы выглядеть такой файл. Мы рассмотрим все различные конфигурационные параметры:

<configuration>

 <system.runtime.remoting>

<application name="Hello">

<service>

<wellknown mode="SingleCall" type="Wrox.ProfessionalCSharp.Hello, RemoteHello" objectUri="Hi" />

</service>

<channels>

<channel type="System.Runtime.Remoting.Channels.Tcp.TcpChannel, System.Runtime.Remoting" port="6791" />

<channel type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting" port="6792" />

</channels>

</application>

 </system.runtime.remoting>

</configuration>

<configuration>
является корневым элементом XML для всех конфигурационных файлов .NET. Все удаленные конфигурации можно найти в подэлементе
<system.runtime.remoting>
.
<application>
является подэлементом
<system.runtime.remoting>
.

Посмотрим на основные элементы и атрибуты в

<system.runtime.remoting>
:

□ В элементе

<application>
определяется имя приложения с помощью атрибута
name
. На серверной стороне это имя сервера, а на клиентской стороне — имя клиентского приложения. Пример серверной конфигурации
<application name="Hellо">
определяет имя удаленного приложения
Hello
, которое используется клиентом как часть URL для доступа к удаленному объекту.

  • Читать дальше
  • 1
  • ...
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: