Windows Server® часто разворачиваю для выполнения всего...

Preview:

Citation preview

Windows Server 2008 R2разработка .NET приложений для Server Core

Почему Server Core?

Windows Server® часто разворачиваю для выполнения всего одной ролиValue Proposition

Уменьшение attack surface areaСервер оптимизирован для выполнения роли - легче управлять и поддерживатьПовышение надежности и безопасностиМеньший объем установки и запуска

Обзор Server CoreServer Core

Минимальная инсталляция Windows ServerCommand Line interface, no GUI Shell

Входит в следующие редакции Windows Server

WebStandardEnterpriseDatacenter

Server Core - уменьшенное количество обновления

Windows 2000 ~60%Windows Server 2003 ~40%Windows Server 2008 ~40%

Server Core в Windows Server 2008

Server Core поддерживаетСледующие роли:

DHCP, File, Print, AD, AD LDS, Media Services, DNS, IIS, and Hyper-V

Следующие дополнительные компоненты:

WINS, Failover Clustering, Subsystem for UNIX-based applications, Backup, Multipath IO, Removable Storage Management, Bitlocker Drive Encryption, SNMP, Telnet Client, QoS

Архитектура Server Core

Server Core Server Roles

Server CoreSecurity, TCP/IP, File Systems, RPC,plus other Core Server Sub-Systems

DNS DHCP FileAD

ServerWith .NETFx,

Shell, Tools, etc.

TS NAS ADFS WDS Etc…

GUI, Shell, IE, Media, Mail, Etc.

Server, Server Roles (for example only)

ADLDS

MediaServer IIS 7 Hyper-V

Print

Расширение Server Core в R2 .NET Framework для Server Core

Подмножество .NET 2.0 Подмножество .NET 3.0

Windows Communication Framework (WCF) Windows Workflow Framework (WF)

Подмножество .NET 3.5 WF расширения 3.5 LINQ

Частичная поддержка ASP.NET вIIS PowerShell WoW64 опциальный компонент

Не устанавливается по умолчанию

Архитектура 2008 R2 Server Core

Server Core Server Roles and Optional Features

Server CoreSecurity, TCP/IP, File Systems, RPC,plus other Core Server Sub-Systems

DNS DHCP FileAD

ServerWith .NetFx, Shell,

Tools, etc.

TS NAS ADFS WDS Etc…

Server, Server Roles (for example only)

ADLDS

MediaServer IIS 7 Hyper-V

Print

ASP.NETPS.NET3/3.5

.NET2.0

WoW64 GUI, Shell, IE, Media, Mail, Etc.

Архитектура .NET Framework

CLR 2.0

LINQ

CLR 3.0Additions

CLR 3.5Additions

WPF ASP.NETWCF WF

CLR 2.0

ASP.NETWPF

.NET Framework на Server Core

LINQ

CLR 3.0Additions

CLR 3.5Additions

WPFWCF WF

.NET Framework 2.0 на Server Core Подмножество .NET 2 на Server Core Установка

Start /w ocsetup NetFx2-ServerCore Для поддержки 32bit :

Start /w ocsetup ServerCore-WOW64 Start /w ocsetup NetFx2-ServerCore-WOW64

.NET Framework 3 на Server Core

.NET 3 функциональность WPF нет на Server Core

.NET 3.5 функциональность LINQ

.NET 3 и 3.5 устанавливаются в одном пакете Start /w ocsetup NetFx3-ServerCore Для поддержки 32bit:

Start /w ocsetup ServerCore-WOW64 Start /w ocsetup NetFx3-ServerCore-WOW64

.NET Namespaces не доступные на Server Core Microsoft.Aspnet.Snapin Microsoft.Ink Microsoft.ManagementConsole.* Microsoft.StylusInput.* Microsoft.VisualBasic.Compatibility.VB6 Microsoft.Windows.Themes Microsoft.WindowsCE.Forms Microsoft.WindowsMobile.DirectX.* System.ComponentModel.Design.*

System.Data.Design System.Deployment.Applicatio

n System.Diagnostics.Design System.Media System.Messaging.Design System.Speech.* System.Web.UI.Design.* System.Windows.* UIAutomationClientsideProvide

rs

VS 2008 C# Installer Необходимо выбрать Target Platform x64 Необходимо модифицировать msi при

помощи Orca.exe В таблице Custom Action необходимо удалить

строки: DIRCA_CheckFx VSDCA_VsdLaunchConditions

Демо

ASP.NET

Входит в IIS, в тот же пакет что и в полном сервере: IIS-ASPNET

Ограничения System.Web.Mail не будут работать по

причине CDOSYS Используйте System.Net.Mail

Web Application Tool (WAT) не доступно

Удаленное управление IIS на Server Core Установите IIS Management Service

Start /w ocsetup IIS-ManagementService Разрешите Remote Management

В HKLM\Software\Microsoft\WebManagement\Server выставить EnableRemoteManagement в 1

Запустить Management Service Net start wmsvc

Другие IIS Features в Server Core IIS-NetFxExtensibility

Поддержка .NET framework модулей расширения

IIS-PowerShellProvider IIS PowerShell cmdlets

IIS-FTPExtensibility IIS-WebDAV WCF-HTTP-Activation

Демо

Установка PowerShell Start /w ocsetup

MicrosoftWindowsPowerShell PowerShell cmdlets

Server Manager cmdlets Start /w ocsetup ServerManager-PSH-Cmdlets add-pssnapin Microsoft.windows.servermanager Cmdlet’ы: add-windowsfeature, get-windowsfeature и

remove-windowsfeature Best Practice Analyzer cmdlets

Start /w ocsetup BestPractices-PSH-Cmdlets add-module BestPractices Cmdlet’ы: get-bparesult, invoke-bpamodel и set-

bparesult

Демо

Server Core Coding Best Practices

Создавайте единый бинарник для Server и Server Core

Идеальный вариантНе делайте зависимостей GUIДля native code, используйте минимальный уровень Win32 APIsДля managed code, ограничитесь Server Core subsetТестируйте на Server Core

Работающий, но не идеальный вариант

Делайте GUI зависимостиПроверяйте что запущенно на Server CoreЕсли да, то отключайте GUIТестируйте на Server Core

Определение Server Core

Вызывайте GetProductInfo API

Value Meaning

PRODUCT_DATACENTER_SERVER0x00000008

Server Datacenter Edition (full installation)

PRODUCT_DATACENTER_SERVER_CORE0x0000000C

Server Datacenter Edition (Server Core installation)

PRODUCT_ENTERPRISE_SERVER0x0000000A

Server Enterprise Edition (full installation)

PRODUCT_ENTERPRISE_SERVER_CORE0x0000000E

Server Enterprise Edition (Server Core installation)

PRODUCT_STANDARD_SERVER0x00000007

Server Standard Edition (full installation)

PRODUCT_STANDARD_SERVER_CORE 0x0000000D

Server Standard Edition (Server Core installation)

Определение Server Core

InstallationType Registry entry HKLM\Software\Microsoft\Windows NT\

CurrentVersion Возможные значения Client, Server и

ServerCore

Ограничения Server Core

Нет Explorer Shell, Task Bar и System TrayНет Internet Explorer

Http.sys включенНет Audio/Video/MultimediaНет MMCНет common dialog box :

Browse buttons в MSIsOpen/Save/Save as

Installation Best Practices

Server Core включает поддержку Windows Installer (MSI)

Добавьте поддержкуUnattended install/quiet

32 bit инсталляторы и Custom Actions требуют ServerCore-WOW64

Вопросы

Recommended