Окно Server Explorer в Visual Studio

103

Server Explorer - одно из немногих инструментальных окон в системе Visual Studio, не связанных с какими-либо решениями или проектами. Оно позволяет исследовать и запрашивать ресурсы аппаратного обеспечения и службы на локальных или удаленных компьютерах. С его помощью разработчик может решать разные задачи и выполнять многие действия, включая добавление ресурсов в свое приложение.

Окно Server Explorer, показанное на рисунке ниже, имеет связь с тремя типами ресурсов. Во-первых, узел Servers обеспечивает доступ к аппаратным ресурсам и службам на локальном, или удаленном компьютере. Эта функциональная возможность исследуется очень подробно. Во-вторых, узел Data Connections обеспечивает все аспекты работы с каналами передачи данных, включая создание баз данных, добавление и модификацию таблиц, создание связей между данными и даже выполнение запросов. В заключение пользователь может добавить связь с сервером SharePoint и просматривать его ресурсы, такие как Content Types, Lists, Libraries и Workflows.

Окно Server Explorer

На рисунке также видно соединение с облачными службами Windows Azure, которое появляется только при установленных библиотеках SDK для работы с Azure.

Серверные соединения

Узел Servers лучше было бы назвать Computers, потому что с его помощью можно соединяться с любым компьютером, к которому пользователь имеет доступ, и посылать ему запросы, независимо от того, является ли он сервером или настольной рабочей станцией. Каждый из этих компьютеров представлен в виде отдельного узла, расположенного под узлом Servers. Под узлом компьютера расположен список аппаратного обеспечения, служб и других компонентов, принадлежащих данному компьютеру. Каждый из них предусматривает многочисленные операции или задачи, которые можно выполнить. Некоторые поставщики программного обеспечения поставляют встраиваемые компоненты, которые расширяют функциональные возможности окна Server Explorer.

Для того чтобы открыть окно Server Explorer, необходимо выбрать команду Server Explorer в меню View. Локальный компьютер включается в список Servers по умолчанию. Для того чтобы добавить другой компьютер, следует щелкнуть правой кнопкой мыши на узле Servers и выбрать команду Add Server из контекстного меню.

Ввод имени компьютера или его IP-адреса инициирует попытку связаться с этой машиной, используя мандат пользователя. Если пользователь не имеет достаточных привилегий, он может установить связь, используя другое имя, щелкнув на соответствующем соединении. В исходном состоянии соединение отключено, но если пользователь щелкнет на нем, откроется диалоговое окно, показанное на рисунке ниже, в котором можно ввести альтернативное имя и пароль:

Подключение к удаленному серверу с помощью окна Server Explorer

Для доступа к любому серверу необходимы права администратора.

Узел Event Logs

Узел Event Logs открывает доступ к машинным журналам регистрации событий. Для того чтобы запустить утилиту Event Viewer, нужно выбрать соответствующую команду в контекстном меню. Как показано на рисунке ниже, в качестве альтернативы можно открыть список журналов регистрации событий и найти конкретное приложение. Щелкнув на любом из событий, можно вывести на экран информацию о данном событии в окне Properties.

Добавление лога событий с помощью окна Server Explorer

Несмотря на то что окно Server Explorer является полезным инструментом для опрашивания машины при создании программы, его истинная мощь в процессе создания компонентов проявляется, когда пользователь перетаскивает узел ресурса в окно Windows Form. Например, если перетащить узел Application в окно Windows Form, то в область невидимых компонентов проектировщика будет добавлен экземпляр класса System.Diagnostics.EventLog. Затем разработчик может сделать запись об этом событии в журнале регистрации событий, используя следующий код:

this.eventLog1.Source = "Мое приложение в Server Explorer";
this.eventLog1.WriteEntry("Что-то произошло",
    System.Diagnostics.EventLogEntryType.Information);

Поскольку код, приведенный выше, создает новый источник событий Source в журнале Application Event Log, для его выполнения необходимы права администратора. Если при работе под управлением операционной системы Windows Vista или выше включен механизм управления учетными записями пользователей (User Account Control), то необходимо создать манифест приложения.

После выполнения этого кода пользователь увидит результаты в окне Server Explorer. Теперь необходимо щелкнуть на кнопке Refresh инструментальной панели Server Explorer, чтобы гарантировать, что новый источник событий (Event Source) будет выведен на экран под узлом Application Event Log.

В качестве альтернативы программисты, работающие на языке Visual Basic, могут добавить в свой код класс Event Log и использовать встроенный журнал регистрации событий, принадлежащий пространству имен My. Например, можно модифицировать предыдущий сниппет и создать регистрационную запись с помощью метода My.Application.Log.WriteEntry.

// Код на языке Visual Basic
My.Application.Log.WriteEntry("Щелчек на кнопке", TraceEventType.Information)

Помимо этого, можно также записать информацию об исключении, используя метод My.Application.Log.WriteException, который принимает в качестве аргументов исключение и два необязательных параметра, содержащих дополнительную информацию.

Использование пространства имен My для записи информации в журнал регистрации событий имеет много дополнительных преимуществ. В следующем файле конфигурации указан объект класса EventLogTraceListener, предназначенный для передачи регистрационной информации в журнал регистрации событий. Однако пользователь может задавать других слушателей - например, объекты класса FileLogTraceListener, которые записывают информацию о трассировке (trace information) в журнал регистрации событий, добавляя их в коллекции SharedListeners и Listeners.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<system.diagnostics>
		<sources>
			<source name="DefaultSource" switchName="DefaultSwitch">
				<listeners>
					<add name="EventLog"/>
				</listeners>
			</source>
		</sources>
		<switches>
			<add name="DefaultSwitch" value="Information"/>
		</switches>
		<sharedListeners>
			<add name="EventLog" type="System.Diagnostics.EventLogTraceListener"
				initializeData="ApplicationEventLog"/>
		</sharedListeners>
	</system.diagnostics>
</configuration>

В этой конфигурации указан также переключатель (switch) DefaultSwitch. Он связан с источником информации о трассировке посредством атрибута switchName и определяет минимальный тип события, которое будет послано перечисленным слушателям. Например, если значение этого переключателя равно Critical, то события, имеющие тип Information, не будут записаны в журнал регистрации событий. Возможные значения переключателя перечислены следующей таблице:

Значения объекта DefaultSwitch
Значение по умолчанию Типы событий, записываемых в журнал
Off

Никакие

Critical

Critical Events

Error

Critical и Error Events

Warning

Critical, Error и Warning Events

Information

Critical, Error, Warning и Information

Verbose

Critical, Error, Warning, Information и Verbose

ActivityTracing

Start, Stop, Suspend, Resume и Transfer Events

All

Все события

Обратите внимание на то, что существуют перегруженные варианты методов WriteEntry и WriteException, не требующие указания типа событий. В этом случае по умолчанию используются типы Information и Error.

Пройди тесты
Лучший чат для C# программистов