Najlepsze rozwiązania dotyczące serwera ściąganiaPull server best practices

Dotyczy: Windows PowerShell 4,0, Windows PowerShell 5,0Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0

Ważne

Serwer ściągania (Windows Feature DSC-Service ) jest obsługiwanym składnikiem systemu Windows Server, ale nie ma żadnych planów do oferowania nowych funkcji.The Pull Server (Windows Feature DSC-Service ) is a supported component of Windows Server however there are no plans to offer new features or capabilities. Zalecane jest, aby rozpocząć przechodzenie zarządzanych klientów do Azure Automation DSC (obejmuje funkcje wykraczające poza serwer ściągający w systemie Windows Server) lub jedno z rozwiązań społecznościowych wymienionych w tym miejscu.It is recommended to begin transitioning managed clients to Azure Automation DSC (includes features beyond Pull Server on Windows Server) or one of the community solutions listed here.

Podsumowanie: ten dokument ma obejmować proces i rozszerzalność, aby pomóc inżynierom przygotowującym się do rozwiązania.Summary: This document is intended to include process and extensibility to assist engineers who are preparing for the solution. Szczegóły powinny zapewnić najlepsze rozwiązania, które zostały zidentyfikowane przez klientów, a następnie zweryfikowane przez zespół produktu w celu zapewnienia, że zalecenia są przyszłe i uważane za stabilne.Details should provide best practices as identified by customers and then validated by the product team to ensure recommendations are future facing and considered stable.

  • Autor: Michael GreeneAuthor: Michael Greene
  • Recenzenci: Ben Gelens, Ravikanth Chaganti, Aleksandar NikolicReviewers: Ben Gelens, Ravikanth Chaganti, Aleksandar Nikolic
  • Opublikowano: kwiecień, 2015Published: April, 2015

AbstractAbstract

Ten dokument został zaprojektowany z założeniami oficjalnych wskazówek dla każdej z nich, aby zaplanował implementację serwera ściągania konfiguracji żądanego stanu programu Windows PowerShell.This document is designed to provide official guidance for anyone planning for a Windows PowerShell Desired State Configuration pull server implementation. Serwer ściągania to prosta usługa, która może być wdrażana tylko w ciągu kilku minut.A pull server is a simple service that should take only minutes to deploy. Mimo że ten dokument zawiera wskazówki techniczne, które mogą być używane we wdrożeniu, wartość tego dokumentu stanowi odwołanie do najlepszych rozwiązań i zagadnienia, które należy wziąć pod uwagę przed wdrożeniem.Although this document will offer technical how-to guidance that can be used in a deployment, the value of this document is as a reference for best practices and what to think about before deploying. Czytelnicy powinni mieć podstawową wiedzę na temat konfiguracji DSC oraz terminy używane do opisywania składników uwzględnionych w ramach wdrożenia DSC.Readers should have basic familiarity with DSC, and the terms used to describe the components that are included in a DSC deployment. Aby uzyskać więcej informacji, zobacz temat Omówienie konfiguracji żądanego stanu programu Windows PowerShell .For more information, see the Windows PowerShell Desired State Configuration Overview topic. Ponieważ oczekuje się, że usługa DSC zostanie rozinstalowana w chmurze erze, podstawowa technologia, w tym serwer ściągania, również będzie rozwijana i wprowadza nowe możliwości.As DSC is expected to evolve at cloud cadence, the underlying technology including pull server is also expected to evolve and to introduce new capabilities. Ten dokument zawiera tabelę wersji w dodatku, która zawiera odwołania do poprzednich wersji i odwołania do przyszłych rozwiązań, które ułatwiają projekty do przodu.This document includes a version table in the appendix that provides references to previous releases and references to future looking solutions to encourage forward-looking designs.

Dwie główne sekcje tego dokumentu:The two major sections of this document:

  • Planowanie konfiguracjiConfiguration Planning
  • Przewodnik instalacjiInstallation Guide

Wersje platformy zarządzania systemu WindowsVersions of the Windows Management Framework

Informacje przedstawione w tym dokumencie mają zastosowanie do programu Windows Management Framework 5,0.The information in this document is intended to apply to Windows Management Framework 5.0. Mimo że program WMF 5,0 nie jest wymagany do wdrożenia i obsługi serwera ściągania, wersja 5,0 jest fokusem tego dokumentu.While WMF 5.0 is not required for deploying and operating a pull server, version 5.0 is the focus of this document.

Konfiguracja żądanego stanu programu Windows PowerShellWindows PowerShell Desired State Configuration

Konfiguracja żądanego stanu (DSC) to platforma zarządzania, która umożliwia wdrażanie i zarządzanie danymi konfiguracyjnymi przy użyciu składni branżowej o nazwie Managed Object Format (MOF) do opisywania model wspólnych informacji (CIM).Desired State Configuration (DSC) is a management platform that enables deploying and managing configuration data by using an industry syntax named the Managed Object Format (MOF) to describe the Common Information Model (CIM). Projekt typu open source, Open Management Infrastructure (OMI), już istnieje, aby dodatkowo rozwijać te standardy na różnych platformach, w tym w systemach operacyjnych Linux i sieciowych.An open source project, Open Management Infrastructure (OMI), exists to further development of these standards across platforms including Linux and network hardware operating systems. Aby uzyskać więcej informacji, zobacz stronę DMTF łączącą się ze specyfikacjami MOForaz OMI dokumenty i źródło.For more information, see the DMTF page linking to MOF specifications, and OMI Documents and Source.

Program Windows PowerShell udostępnia zestaw rozszerzeń języka dla konfiguracji żądanego stanu, którego można użyć do tworzenia i zarządzania konfiguracjami deklaracyjne.Windows PowerShell provides a set of language extensions for Desired State Configuration that you can use to create and manage declarative configurations.

Rola serwera ściąganiaPull server role

Serwer ściągania zapewnia scentralizowaną usługę do przechowywania konfiguracji, które będą dostępne dla węzłów docelowych.A pull server provides a centralized service to store configurations that will be accessible to target nodes.

Rolę serwera ściągania można wdrożyć jako wystąpienie serwera sieci Web lub udział plików SMB.The pull server role can be deployed as either a Web Server instance or an SMB file share. Funkcja serwer sieci Web zawiera interfejs OData i opcjonalnie może zawierać możliwości dla węzłów docelowych, aby zgłosić potwierdzenie sukcesu lub niepowodzenia, gdy są stosowane konfiguracje.The web server capability includes an OData interface and can optionally include capabilities for target nodes to report back confirmation of success or failure as configurations are applied. Ta funkcja jest przydatna w środowiskach, w których istnieje duża liczba węzłów docelowych.This functionality is useful in environments where there are a large number of target nodes. Po skonfigurowaniu węzła docelowego (nazywanego również klientem) w celu skierowania do serwera ściągania są pobierane i stosowane najnowsze dane konfiguracji oraz wszystkie wymagane skrypty.After configuring a target node (also referred to as a client) to point to the pull server the latest configuration data and any required scripts are downloaded and applied. Taka sytuacja może wystąpić jako jednorazowe wdrożenie lub jako zadanie ponownego uruchomienia, co powoduje, że serwer ściągania będzie ważnym zasobem do zarządzania zmianami w skali.This can happen as a one-time deployment or as a re-occurring job which also makes the pull server an important asset for managing change at scale. Aby uzyskać więcej informacji, zobacz Konfiguracja żądanego stanu programu Windows PowerShell serwery ściągania i tryby konfiguracji wypychania i ściągania.For more information, see Windows PowerShell Desired State Configuration Pull Servers and Push and Pull Configuration Modes.

Planowanie konfiguracjiConfiguration planning

W przypadku dowolnego wdrożenia oprogramowania w przedsiębiorstwie dostępne są informacje, które mogą być zbierane z wyprzedzeniem, aby pomóc w zaplanowaniu właściwej architektury i przygotowania do wykonania czynności wymaganych do ukończenia wdrożenia.For any enterprise software deployment there is information that can be collected in advance to help plan for the correct architecture and to be prepared for the steps required to complete the deployment. Poniższe sekcje zawierają informacje dotyczące sposobu przygotowania i połączenia organizacyjne, które prawdopodobnie będą musiały wystąpić z wyprzedzeniem.The following sections provide information regarding how to prepare and the organizational connections that will likely need to happen in advance.

Wymagania dotyczące oprogramowaniaSoftware requirements

Wdrożenie serwera ściągania wymaga funkcji usługi DSC systemu Windows Server.Deployment of a pull server requires the DSC Service feature of Windows Server. Ta funkcja została wprowadzona w systemie Windows Server 2012 i została zaktualizowana za jego bieżącą wersję.This feature was introduced in Windows Server 2012, and has been updated through ongoing releases of Windows Management Framework (WMF).

Oprogramowanie do pobraniaSoftware downloads

Oprócz instalowania najnowszej zawartości z Windows Update są dostępne dwa pliki do pobrania, które są zgodne z najlepszymi rozwiązaniami dotyczącymi wdrażania serwera ściągania DSC: najnowszej wersji programu Windows Management Framework oraz modułu DSC do automatyzowania aprowizacji serwera ściągania.In addition to installing the latest content from Windows Update, there are two downloads considered best practice to deploy a DSC pull server: The latest version of Windows Management Framework, and a DSC module to automate pull server provisioning.

WMFWMF

System Windows Server 2012 R2 zawiera funkcję o nazwie usługa DSC.Windows Server 2012 R2 includes a feature named the DSC Service. Funkcja usługi DSC udostępnia funkcje serwera ściągania, w tym pliki binarne obsługujące punkt końcowy OData.The DSC Service feature provides the pull server functionality, including the binaries that support the OData endpoint. Pakiet WMF jest dołączony do systemu Windows Server i jest aktualizowany w erze Agile między wersjami systemu Windows Server.WMF is included in Windows Server and is updated on an agile cadence between Windows Server releases. Nowe wersje programu WMF 5,0 mogą obejmować aktualizacje funkcji usługi DSC.New versions of WMF 5.0 can include updates to the DSC Service feature. Z tego powodu najlepszym rozwiązaniem jest pobranie najnowszej wersji programu WMF i zapoznanie się z informacjami o wersji w celu ustalenia, czy wydanie obejmuje aktualizację funkcji usługi DSC.For this reason, it is a best practice to download the latest release of WMF and to review the release notes to determine if the release includes an update to the DSC service feature. Należy również zapoznać się z sekcją informacje o wersji, która wskazuje, czy stan projektu dla aktualizacji lub scenariusza jest wymieniony jako stabilny, jak eksperymentalny.You should also review the section of the release notes that indicates whether the design status for an update or scenario is listed as stable or experimental. Aby zezwolić na cykl wydania Agile, poszczególne funkcje mogą być deklarowane jako stabilne. oznacza to, że funkcja jest gotowa do użycia w środowisku produkcyjnym, nawet gdy program WMF jest wydawany w wersji zapoznawczej.To allow for an agile release cycle, individual features can be declared stable, which indicates the feature is ready to be used in a production environment even while WMF is released in preview. Inne funkcje, które w przeszłości zostały zaktualizowane przez wersje WMF (zobacz informacje o wersji WMF, aby uzyskać więcej szczegółów):Other features that have historically been updated by WMF releases (see the WMF Release Notes for further detail):

  • Zintegrowane skrypty programu Windows PowerShell środowiska Windows PowerShellWindows PowerShell Windows PowerShell Integrated Scripting
  • Środowisko (ISE) Windows PowerShell Web Services (zarządzanie ODataEnvironment (ISE) Windows PowerShell Web Services (Management OData
  • Rozszerzenie IIS) Konfiguracja żądanego stanu programu Windows PowerShell (DSC)IIS Extension) Windows PowerShell Desired State Configuration (DSC)
  • Instrumentacja zarządzania Windows Windows Remote Management (WinRM) (WMI)Windows Remote Management (WinRM) Windows Management Instrumentation (WMI)

Zasób DSCDSC resource

Wdrożenie serwera ściągania można uprościć przez zainicjowanie usługi przy użyciu skryptu konfiguracji DSC.A pull server deployment can be simplified by provisioning the service using a DSC configuration script. Ten dokument zawiera skrypty konfiguracyjne, za pomocą których można wdrożyć węzeł serwera gotowego do produkcji.This document includes configuration scripts that can be used to deploy a production ready server node. Aby można było użyć skryptów konfiguracji, wymagany jest moduł DSC, który nie jest dołączony do systemu Windows Server.To use the configuration scripts, a DSC module is required that is not included in Windows Server. Wymagana nazwa modułu to xPSDesiredStateConfiguration , który obejmuje xDscWebService zasobów DSC.The required module name is xPSDesiredStateConfiguration , which includes the DSC resource xDscWebService . Moduł xPSDesiredStateConfiguration można pobrać tutaj.The xPSDesiredStateConfiguration module can be downloaded here.

Użyj Install-Module polecenia cmdlet z modułu PowerShellGet .Use the Install-Module cmdlet from the PowerShellGet module.

Install-Module xPSDesiredStateConfiguration

Moduł PowerShellGet pobierze moduł do:The PowerShellGet module will download the module to:

C:\Program Files\Windows PowerShell\Modules

Planowanie zadaniaPlanning task

  • Czy masz dostęp do plików instalacyjnych dla systemu Windows Server 2012 R2?Do you have access to the installation files for Windows Server 2012 R2?
  • Czy środowisko wdrożenia będzie miało dostęp do Internetu w celu pobrania z galerii w trybie online i modułu.Will the deployment environment have Internet access to download WMF and the module from the online gallery?
  • Jak zostaną zainstalowane najnowsze aktualizacje zabezpieczeń po zainstalowaniu systemu operacyjnego?How will you install the latest security updates after installing the operating system?
  • Czy środowisko będzie miało dostęp do Internetu w celu uzyskania aktualizacji lub czy będzie miało lokalny serwer Windows Server Update Services (WSUS)?Will the environment have Internet access to obtain updates, or will it have a local Windows Server Update Services (WSUS) server?
  • Czy masz dostęp do plików instalacyjnych systemu Windows Server, które zawierają już aktualizacje przez wstrzyknięcie w trybie offline?Do you have access to Windows Server installation files that already include updates through offline injection?

Wymagania sprzętoweHardware requirements

Wdrożenia serwera ściągania są obsługiwane zarówno na serwerze fizycznym, jak i wirtualnym.Pull server deployments are supported on both physical and virtual servers. Wymagania dotyczące ustalania wielkości serwera ściągania są zgodne z wymaganiami dla systemu Windows Server 2012 R2.The sizing requirements for pull server align with the requirements for Windows Server 2012 R2.

  • Procesor CPU: 1,4 GHz 64-bitowy procesorCPU: 1.4 GHz 64-bit processor
  • Pamięć: 512 MBMemory: 512 MB
  • Miejsce na dysku: 32 GBDisk Space: 32 GB
  • Sieć: karta Gigabit EthernetNetwork: Gigabit Ethernet Adapter

Planowanie zadaniaPlanning task

  • Czy program zostanie wdrożony na sprzęcie fizycznym, czy na platformie wirtualizacji?Will you deploy on physical hardware or on a virtualization platform?
  • Co to jest proces żądania nowego serwera dla środowiska docelowego?What is the process to request a new server for your target environment?
  • Jaki jest średni czas szybkością oferowaną dla serwera do udostępnienia?What is the average turnaround time for a server to become available?
  • Jakiego rozmiaru serwer będzie żądał?What size server will you request?

KontaAccounts

Nie ma wymagań dotyczących konta usługi do wdrożenia wystąpienia serwera ściągania.There are no service account requirements to deploy a pull server instance. Istnieją jednak scenariusze, w których witryna sieci Web może działać w kontekście konta użytkownika lokalnego.However, there are scenarios where the website could run in the context of a local user account. Na przykład, jeśli istnieje potrzeba uzyskania dostępu do udziału magazynu dla zawartości witryny sieci Web, a system Windows Server lub urządzenie hostujący udział magazynu nie są przyłączone do domeny.For example, if there is a need to access a storage share for website content and either the Windows Server or the device hosting the storage share are not domain joined.

Rekordy DNSDNS records

Potrzebna jest nazwa serwera, która będzie używana podczas konfigurowania klientów do pracy ze środowiskiem serwera ściągania.You will need a server name to use when configuring clients to work with a pull server environment. W środowiskach testowych zazwyczaj używana jest nazwa hosta serwera lub adres IP serwera może być używany, jeśli rozpoznawanie nazw DNS jest niedostępne.In test environments, typically the server hostname is used, or the IP address for the server can be used if DNS name resolution is not available. W środowiskach produkcyjnych lub w środowisku laboratoryjnym, które jest przeznaczone do reprezentowania wdrożenia produkcyjnego, najlepszym rozwiązaniem jest utworzenie rekordu CNAME DNS.In production environments or in a lab environment that is intended to represent a production deployment, the best practice is to create a DNS CNAME record.

Rekord CNAME systemu DNS pozwala utworzyć alias do odwoływania się do rekordu hosta (A).A DNS CNAME allows you to create an alias to refer to your host (A) record. Zamiarem dodatkowego rekordu nazwy jest zwiększenie elastyczności, gdy zmiana powinna być wymagana w przyszłości.The intent of the additional name record is to increase flexibility should a change be required in the future. Rekord CNAME może pomóc wyizolować konfigurację klienta tak, aby zmiany w środowisku serwera, takie jak zastąpienie serwera ściągania lub dodanie dodatkowych serwerów ściągania, nie wymagały odpowiedniej zmiany konfiguracji klienta.A CNAME can help to isolate the client configuration so that changes to the server environment, such as replacing a pull server or adding additional pull servers, will not require a corresponding change to the client configuration.

Po wybraniu nazwy rekordu DNS należy pamiętać o architekturze rozwiązania.When choosing a name for the DNS record, keep the solution architecture in mind. W przypadku korzystania z równoważenia obciążenia certyfikat używany do zabezpieczenia ruchu za pośrednictwem protokołu HTTPS musi mieć taką samą nazwę jak rekord DNS.If using load balancing, the certificate used to secure traffic over HTTPS will need to share the same name as the DNS record.

ScenariuszScenario Najlepsze rozwiązanieBest Practice
Środowisko testoweTest Environment Odtwórz planowane środowisko produkcyjne, jeśli jest to możliwe.Reproduce the planned production environment, if possible. Nazwa hosta serwera jest odpowiednia dla prostych konfiguracji.A server hostname is suitable for simple configurations. Jeśli usługa DNS jest niedostępna, można użyć adresu IP zamiast nazwy hosta.If DNS is not available, an IP address may be used in lieu of a hostname.
Wdrożenie jednego węzłaSingle Node Deployment Utwórz rekord CNAME systemu DNS wskazujący nazwę hosta serwera.Create a DNS CNAME record that points to the server hostname.

Aby uzyskać więcej informacji, zobacz Konfigurowanie działania okrężnego DNS w systemie Windows Server.For more information, see Configuring DNS Round Robin in Windows Server.

Planowanie zadaniaPlanning task

  • Czy wiesz, komu chcesz się skontaktować z rekordami DNS utworzonymi i zmienionymi?Do you know who to contact to have DNS records created and changed?
  • Co to jest średnia szybkością oferowaną dla żądania rekordu DNS?What is the average turnaround for a request for a DNS record?
  • Czy musisz zażądać statycznych rekordów hosta (A) dla serwerów?Do you need to request static Hostname (A) records for servers?
  • Co zostanie zażądać jako rekord CNAME?What will you request as a CNAME?
  • W razie potrzeby jakiego typu rozwiązanie do równoważenia obciążenia będzie wykorzystywane?If needed, what type of Load Balancing solution will you utilize? (więcej informacji znajduje się w sekcji zatytułowanej Równoważenie obciążenia)(see section titled Load Balancing for details)

Infrastruktura kluczy publicznychPublic Key Infrastructure

Większość organizacji wymaga dzisiaj, aby ruch sieciowy, szczególnie ruch zawierający takie dane poufne, jak Konfiguracja serwerów, musiał być sprawdzony i/lub zaszyfrowany podczas przesyłania.Most organizations today require that network traffic, especially traffic that includes such sensitive data as how servers are configured, must be validated and/or encrypted during transit. Chociaż istnieje możliwość wdrożenia serwera ściągania przy użyciu protokołu HTTP, który ułatwia żądania klientów w postaci zwykłego tekstu, najlepszym rozwiązaniem jest Zabezpieczanie ruchu przy użyciu protokołu HTTPS.While it is possible to deploy a pull server using HTTP which facilitates client requests in clear text, it is a best practice to secure traffic using HTTPS. Usługę można skonfigurować do używania protokołu HTTPS przy użyciu zestawu parametrów w xPSDesiredStateConfiguration zasobów DSC.The service can be configured to use HTTPS using a set of parameters in the DSC resource xPSDesiredStateConfiguration .

Wymagania dotyczące certyfikatu dotyczące zabezpieczania ruchu HTTPS dla serwera ściągania nie są inne niż Zabezpieczanie żadnej innej witryny sieci Web HTTPS.The certificate requirements to secure HTTPS traffic for pull server are not different than securing any other HTTPS web site. Szablon serwera sieci Web w usługach certyfikatów systemu Windows Server spełnia wymagane możliwości.The Web Server template in a Windows Server Certificate Services satisfies the required capabilities.

Planowanie zadaniaPlanning task

  • Jeśli żądania certyfikatów nie są zautomatyzowane, kto będzie musiał skontaktować się z żądaniem certyfikatu?If certificate requests are not automated, who will you need to contact to requests a certificate?
  • Co to jest średnia szybkością oferowaną dla żądania?What is the average turnaround for the request?
  • Jak zostanie przesłany plik certyfikatu?How will the certificate file be transferred to you?
  • Jak zostanie przesłany klucz prywatny certyfikatu?How will the certificate private key be transferred to you?
  • Jak długo jest domyślny czas wygaśnięcia?How long is the default expiration time?
  • Czy w środowisku serwera ściągania są rozliczane nazwy DNS, których można użyć jako nazwy certyfikatu?Have you settled on a DNS name for the pull server environment, that you can use for the certificate name?

Wybieranie architekturyChoosing an architecture

Serwer ściągający można wdrożyć przy użyciu usługi sieci Web hostowanej w usługach IIS lub udziału plików SMB.A pull server can be deployed using either a web service hosted on IIS, or an SMB file share. W większości sytuacji opcja usługi sieci Web zapewni większą elastyczność.In most situations, the web service option will provide greater flexibility. Ruch HTTPS nie jest nietypowy w przypadku przechodzenia przez granice sieci, podczas gdy ruch SMB jest często filtrowany lub blokowany między sieciami.It is not uncommon for HTTPS traffic to traverse network boundaries, whereas SMB traffic is often filtered or blocked between networks. Usługa sieci Web oferuje również opcję dołączenia serwera zgodności lub Menedżera raportów sieci Web (tematy, które mają być rozkierowane w przyszłej wersji tego dokumentu), które zapewniają klientom możliwość zgłaszania stanu z powrotem do serwera w celu scentralizowanej widoczności.The web service also offers the option to include a Conformance Server or Web Reporting Manager (both topics to be addressed in a future version of this document) that provide a mechanism for clients to report status back to a server for centralized visibility. Protokół SMB udostępnia opcję dla środowisk, w których zasady określają, że serwer sieci Web nie powinien być używany, oraz inne wymagania dotyczące środowiska, które sprawiają, że rola serwera sieci Web jest niepożądana.SMB provides an option for environments where policy dictates that a web server should not be utilized, and for other environmental requirements that make a web server role undesirable. W obu przypadkach Pamiętaj, aby oszacować wymagania dotyczące podpisywania i szyfrowania ruchu.In either case, remember to evaluate the requirements for signing and encrypting traffic. W przypadku protokołu HTTPS, podpisywania protokołu SMB i zasad protokołu IPSEC są dostępne wszystkie opcje.HTTPS, SMB signing, and IPSEC policies are all options worth considering.

Równoważenie obciążeniaLoad balancing

Klienci korzystający z usługi sieci Web składają żądanie informacji, które są zwracane w ramach jednej odpowiedzi.Clients interacting with the web service make a request for information that is returned in a single response. Nie są wymagane żadne żądania sekwencyjne, więc nie jest to konieczne w przypadku platformy równoważenia obciążenia, aby zapewnić, że sesje są utrzymywane na jednym serwerze w dowolnym momencie.No sequential requests are required, so it is not necessary for the load balancing platform to ensure sessions are maintained on a single server at any point in time.

Planowanie zadaniaPlanning task

  • Jakie rozwiązanie będzie używane do równoważenia obciążenia ruchu między serwerami?What solution will be used for load balancing traffic across servers?
  • W przypadku korzystania z sprzętowego modułu równoważenia obciążenia, który będzie podejmować żądanie dodania nowej konfiguracji do urządzenia?If using a hardware load balancer, who will take a request to add a new configuration to the device?
  • Co to jest średnia szybkością oferowaną dla żądania skonfigurowania nowej usługi sieci Web z równoważeniem obciążenia?What is the average turnaround for a request to configure a new load balanced web service?
  • Jakie informacje będą wymagane dla żądania?What information will be required for the request?
  • Czy musisz zażądać dodatkowego adresu IP lub czy zespół będzie odpowiedzialny za obsługę równoważenia obciążenia?Will you need to request an additional IP or will the team responsible for load balancing handle that?
  • Czy istnieją rekordy DNS wymagane i czy będą one wymagane przez zespół odpowiedzialny za skonfigurowanie rozwiązania do równoważenia obciążenia?Do you have the DNS records needed, and will this be required by the team responsible for configuring the load balancing solution?
  • Czy rozwiązanie równoważenia obciążenia wymaga obsługi infrastruktury PKI przez urządzenie lub może równoważyć obciążenie ruchem HTTPS, o ile nie ma wymagań dotyczących sesji?Does the load balancing solution require that PKI be handled by the device or can it load balance HTTPS traffic as long as there are no session requirements?

Tymczasowe konfiguracje i moduły na serwerze ściąganiaStaging configurations and modules on the pull server

W ramach planowania konfiguracji należy wziąć pod uwagę, które moduły DSC i konfiguracje będą hostowane przez serwer ściągania.As part of configuration planning, you will need to think about which DSC modules and configurations will be hosted by the pull server. Na potrzeby planowania konfiguracji ważne jest, aby uzyskać podstawową wiedzę na temat przygotowywania i wdrażania zawartości na serwerze ściągania.For the purpose of configuration planning it is important to have a basic understanding of how to prepare and deploy content to a pull server.

W przyszłości Ta sekcja zostanie rozszerzona i uwzględniona w Przewodniku obsługi serwera ściągania DSC.In the future, this section will be expanded and included in an Operations Guide for DSC Pull Server. W tym przewodniku omówiono proces codziennego zarządzania modułami i konfiguracją w czasie z automatyzacją.The guide will discuss the day to day process for managing modules and configurations over time with automation.

Moduły DSCDSC modules

Klienci, którzy żądają konfiguracji, będą potrzebować wymaganych modułów DSC.Clients that request a configuration will need the required DSC modules. Funkcja serwera ściągania służy do automatyzowania dystrybucji na żądanie modułów DSC do klientów.A functionality of the pull server is to automate distribution on demand of DSC modules to clients. W przypadku wdrażania serwera ściągania po raz pierwszy, np. laboratorium lub weryfikacji koncepcji, prawdopodobnie będzie zależeć od modułów DSC, które są dostępne z publicznych repozytoriów, takich jak Galeria programu PowerShell lub repozytoria GitHub PowerShell.org dla modułów DSC.If you are deploying a pull server for the first time, perhaps as a lab or proof of concept, you are likely going to depend on DSC modules that are available from public repositories such as the PowerShell Gallery or the PowerShell.org GitHub repositories for DSC modules.

Należy pamiętać, że nawet w przypadku zaufanych źródeł online, takich jak Galeria programu PowerShell, każdy moduł pobrany z repozytorium publicznego powinien być przeglądany przez kogoś z programu PowerShell i wiedząc o środowisku, w którym moduły zostaną użyte przed użyciem do produkcji.It is critical to remember that even for trusted online sources such as the PowerShell Gallery, any module that is downloaded from a public repository should be reviewed by someone with PowerShell experience and knowledge of the environment where the modules will be used prior to being used in production. Podczas wykonywania tego zadania jest dobrym terminem do sprawdzenia dowolnego dodatkowego ładunku w module, który można usunąć, takiego jak dokumentacja i przykładowe skrypty.While completing this task it is a good time to check for any additional payload in the module that can be removed such as documentation and example scripts. Spowoduje to zmniejszenie przepustowości sieci na klienta podczas pierwszego żądania, gdy moduły zostaną pobrane przez sieć z serwera do klienta.This will reduce the network bandwidth per client in their first request, when modules will be downloaded over the network from server to client.

Każdy moduł musi być spakowany w określonym formacie, pliku ZIP o nazwie ModuleName_Version.zip, który zawiera ładunek modułu.Each module must be packaged in a specific format, a ZIP file named ModuleName_Version.zip that contains the module payload. Po skopiowaniu pliku na serwer należy utworzyć plik sum kontrolnych.After the file is copied to the server a checksum file must be created. Gdy klienci łączą się z serwerem, suma kontrolna służy do sprawdzania, czy zawartość modułu DSC nie została zmieniona od czasu opublikowania.When clients connect to the server, the checksum is used to verify the content of the DSC module has not changed since it was published.

New-DscChecksum -ConfigurationPath .\ -OutPath .\

Planowanie zadaniaPlanning task

  • Jeśli planujesz test lub środowisko laboratoryjne, które scenariusze są kluczowe do weryfikacji?If you are planning a test or lab environment which scenarios are key to validate?
  • Czy istnieją publicznie dostępne moduły, które zawierają zasoby, które obejmują wszystko, czego potrzebujesz, lub należy utworzyć własne zasoby?Are there publicly available modules that contain resources to cover everything you need or will you need to author your own resources?
  • Czy Twoje środowisko będzie miało dostęp do Internetu w celu pobrania modułów publicznych?Will your environment have Internet access to retrieve public modules?
  • Kto będzie odpowiedzialny za przeglądanie modułów DSC?Who will be responsible for reviewing DSC modules?
  • Jeśli planujesz środowisko produkcyjne, co będzie używane jako lokalne repozytorium do przechowywania modułów DSC?If you are planning a production environment what will you use as a local repository for storing DSC modules?
  • Czy centralny zespół akceptuje moduły DSC z zespołów aplikacji?Will a central team accept DSC modules from application teams? Co to jest proces?What will the process be?
  • Czy można zautomatyzować pakowanie, kopiowanie i tworzenie sum kontrolnych dla modułów DSC z gotowością produkcyjną do serwera z repozytorium źródłowego?Will you automate packaging, copying, and creating a checksum for production-ready DSC modules to the server, from your source repo?
  • Czy zespół będzie odpowiedzialny za zarządzanie platformą usługi Automation?Will your team be responsible for managing the automation platform as well?

Konfiguracje DSCDSC configurations

Celem serwera ściągania jest zapewnienie scentralizowanego mechanizmu dystrybucji konfiguracji DSC do węzłów klienta.The purpose of a pull server is to provide a centralized mechanism for distributing DSC configurations to client nodes. Konfiguracje są przechowywane na serwerze jako dokumenty MOF.The configurations are stored on the server as MOF documents. Każdy dokument zostanie nazwany z unikatowym identyfikatorem GUID .Each document will be named with a unique Guid . Gdy klienci są skonfigurowani do łączenia się z serwerem ściągania, otrzymują również Identyfikator GUID konfiguracji, dla których powinny one żądać.When clients are configured to connect with a pull server, they are also given the Guid for the configuration they should request. Ten system odwoływania się do konfiguracji za pomocą identyfikatora GUID gwarantuje globalną unikatowość i jest elastyczny, aby można było zastosować konfigurację z szczegółowością dla każdego węzła lub jako konfigurację roli obejmującą wiele serwerów, które powinny mieć identyczne konfiguracje.This system of referencing configurations by Guid guarantees global uniqueness and is flexible such that a configuration can be applied with granularity per node, or as a role configuration that spans many servers that should have identical configurations.

Identyfikatory GUIDGuids

Planowanie identyfikatorów GUID konfiguracji jest cenną dodatkową uwagę podczas wdrażania serwera ściągania.Planning for configuration Guids is worth additional attention when thinking through a pull server deployment. Nie ma konkretnego wymagania dotyczącego sposobu obsługi identyfikatorów GUID , a proces jest prawdopodobnie unikatowy dla każdego środowiska.There is no specific requirement for how to handle Guids and the process is likely to be unique for each environment. Proces może się wahać od prostego do złożonej: centralnie przechowywany plik CSV, prosta tabela SQL, CMDB lub złożone rozwiązanie wymagające integracji z innym narzędziem lub rozwiązaniem oprogramowania.The process can range from simple to complex: a centrally stored CSV file, a simple SQL table, a CMDB, or a complex solution requiring integration with another tool or software solution. Istnieją dwa ogólne podejścia:There are two general approaches:

  • Przypisywanie identyfikatorów GUID na serwer — zapewnia miarę pewności, że każda konfiguracja serwera jest kontrolowana indywidualnie.Assigning Guids per server — Provides a measure of assurance that every server configuration is controlled individually. Zapewnia to poziom dokładności aktualizacji i może wydajnie współpracować w środowiskach z kilkoma serwerami.This provides a level of precision around updates and can work well in environments with few servers.

  • Przypisywanie identyfikatorów GUID dla roli serwera — wszystkie serwery, które wykonują tę samą funkcję, taką jak serwery sieci Web, używają tego samego identyfikatora GUID do odwoływania się do wymaganych danych konfiguracyjnych.Assigning Guids per server role — All servers that perform the same function, such as web servers, use the same GUID to reference the required configuration data. Należy pamiętać, że jeśli wiele serwerów ma ten sam identyfikator GUID, wszystkie z nich byłyby aktualizowane jednocześnie w przypadku zmiany konfiguracji.Be aware that if many servers share the same GUID, all of them would be updated simultaneously when the configuration changes.

    Identyfikator GUID to coś, który powinien być traktowany jako poufne dane, ponieważ może zostać wykorzystane przez kogoś ze złośliwego celu w celu uzyskania informacji na temat sposobu wdrażania i konfigurowania serwerów w danym środowisku.The GUID is something that should be considered sensitive data because it could be leveraged by someone with malicious intent to gain intelligence about how servers are deployed and configured in your environment. Aby uzyskać więcej informacji, zobacz bezpieczne przydzielanie identyfikatorów GUID w trybie ściągania konfiguracji żądanego stanu programu PowerShell.For more information, see Securely allocating Guids in PowerShell Desired State Configuration Pull Mode.

Planowanie zadaniaPlanning task

  • Kto będzie odpowiedzialny za kopiowanie konfiguracji w folderze serwera ściągania, gdy będą one gotowe?Who will be responsible for copying configurations in to the pull server folder when they are ready?
  • Jeśli konfiguracje są tworzone przez zespół aplikacji, co będzie miało być dostępne w procesie?If Configurations are authored by an application team, what will the process be to hand them off?
  • Czy będziesz używać repozytorium do przechowywania konfiguracji w miarę ich tworzenia przez zespoły?Will you leverage a repository to store configurations as they are being authored, across teams?
  • Czy można zautomatyzować proces kopiowania konfiguracji na serwer i utworzyć sumę kontrolną, gdy są one gotowe?Will you automate the process of copying configurations to the server and creating a checksum when they are ready?
  • Jak będą mapowane identyfikatory GUID na serwery lub role i gdzie będą przechowywane?How will you map Guids to servers or roles, and where will this be stored?
  • Co będzie służyć jako proces konfigurowania maszyn klienckich i sposobu integracji z procesem w celu tworzenia i przechowywania identyfikatorów GUID konfiguracji?What will you use as a process to configure client machines, and how will it integrate with your process for creating and storing Configuration Guids?

Przewodnik instalacjiInstallation Guide

Skrypty podane w tym dokumencie są stabilnymi przykładami. Zawsze uważnie sprawdzaj skrypty przed ich wykonaniem w środowisku produkcyjnym.Scripts given in this document are stable examples. Always review scripts carefully before executing them in a production environment.

Wymagania wstępnePrerequisites

Aby sprawdzić wersję programu PowerShell na serwerze, użyj następującego polecenia.To verify the version of PowerShell on your server use the following command.

$PSVersionTable.PSVersion

Jeśli to możliwe, przeprowadź uaktualnienie do najnowszej wersji systemu Windows Management Framework.If possible, upgrade to the latest version of Windows Management Framework. Następnie Pobierz xPsDesiredStateConfiguration moduł przy użyciu następującego polecenia.Next, download the xPsDesiredStateConfiguration module using the following command.

Install-Module xPSDesiredStateConfiguration

Polecenie wyświetli zapytanie o zatwierdzenie przed pobraniem modułu.The command will ask for your approval before downloading the module.

Skrypty instalacji i konfiguracjiInstallation and configuration scripts

Najlepszą metodą wdrożenia serwera ściągania DSC jest użycie skryptu konfiguracji DSC.The best method to deploy a DSC pull server is to use a DSC configuration script. W tym dokumencie zawarto skrypty, w tym zarówno podstawowe ustawienia usługi sieci Web DSC, jak i ustawienia zaawansowane, które spowodują skonfigurowanie kompleksowego systemu Windows Server, w tym usługi sieci Web DSC.This document will present scripts including both basic settings that would configure only the DSC web service and advanced settings that would configure a Windows Server end-to-end including DSC web service.

Uwaga: obecnie xPSDesiredStateConfiguration moduł DSC wymaga, aby serwer miał ustawienia regionalne en-us.Note: Currently the xPSDesiredStateConfiguration DSC module requires the server to be EN-US locale.

Podstawowa konfiguracja systemu Windows Server 2012Basic configuration for Windows Server 2012

# This is a very basic Configuration to deploy a pull server instance in a lab environment on Windows Server 2012.

Configuration PullServer {
Import-DscResource -ModuleName xPSDesiredStateConfiguration

        # Load the Windows Server DSC Service feature
        WindowsFeature DSCServiceFeature
        {
          Ensure = 'Present'
          Name = 'DSC-Service'
        }

        # Use the DSC Resource to simplify deployment of the web service
        xDSCWebService PSDSCPullServer
        {
          Ensure = 'Present'
          EndpointName = 'PSDSCPullServer'
          Port = 8080
          PhysicalPath = "$env:SYSTEMDRIVE\inetpub\wwwroot\PSDSCPullServer"
          CertificateThumbPrint = 'AllowUnencryptedTraffic'
          ModulePath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules"
          ConfigurationPath = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration"
          State = 'Started'
          DependsOn = '[WindowsFeature]DSCServiceFeature'
        }
}
PullServer -OutputPath 'C:\PullServerConfig\'
Start-DscConfiguration -Wait -Force -Verbose -Path 'C:\PullServerConfig\'

Konfiguracja zaawansowana dla systemu Windows Server 2012 R2Advanced configuration for Windows Server 2012 R2

# This is an advanced Configuration example for Pull Server production deployments
# on Windows Server 2012 R2. Many of the features demonstrated are optional and
# provided to demonstrate how to adapt the Configuration for multiple scenarios
# Select the needed resources based on the requirements for each environment.
# Optional scenarios include:
#      * Reduce footprint to Server Core
#      * Rename server and join domain
#      * Switch from SSL to TLS for HTTPS
#      * Automatically load certificate from Certificate Authority
#      * Locate Modules and Configuration data on remote SMB share
#      * Manage state of default websites in IIS

param (
        [Parameter(Mandatory=$true)]
        [ValidateNotNullorEmpty()]
        [System.String] $ServerName,
        [System.String] $DomainName,
        [System.String] $CARootName,
        [System.String] $CAServerFQDN,
        [System.String] $CertSubject,
        [System.String] $SMBShare,
        [Parameter(Mandatory=$true)]
        [ValidateNotNullorEmpty()]
        [PsCredential] $Credential
    )

Configuration PullServer {
    Import-DscResource -ModuleName xPSDesiredStateConfiguration, xWebAdministration, xCertificate, xComputerManagement
    Node localhost
    {

        # Configure the server to automatically corret configuration drift including reboots if needed.
        LocalConfigurationManager
        {
            ConfigurationMode = 'ApplyAndAutoCorrect'
            RebootNodeifNeeded = $node.RebootNodeifNeeded
            CertificateId = $node.Thumbprint
        }

        # Remove all GUI interfaces so the server has minimum running footprint.
        WindowsFeature ServerCore
        {
            Ensure = 'Absent'
            Name = 'User-Interfaces-Infra'
        }

        # Set the server name and if needed, join a domain. If not joining a domain, remove the DomainName parameter.
        xComputer DomainJoin
        {
            Name = $Node.ServerName
            DomainName = $Node.DomainName
            Credential = $Node.Credential
        }

        # The next series of settings disable SSL and enable TLS, for environments where that is required by policy.
        Registry TLS1_2ServerEnabled
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server'
            ValueName = 'Enabled'
            ValueData = 1
            ValueType = 'Dword'
        }

        Registry TLS1_2ServerDisabledByDefault
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server'
            ValueName = 'DisabledByDefault'
            ValueData = 0
            ValueType = 'Dword'
        }

        Registry TLS1_2ClientEnabled
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client'
            ValueName = 'Enabled'
            ValueData = 1
            ValueType = 'Dword'
        }

        Registry TLS1_2ClientDisabledByDefault
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client'
            ValueName = 'DisabledByDefault'
            ValueData = 0
            ValueType = 'Dword'
        }

        Registry SSL2ServerDisabled
        {
            Ensure = 'Present'
            Key = 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server'
            ValueName = 'Enabled'
            ValueData = 0
            ValueType = 'Dword'
        }

        # Install the Windows Server DSC Service feature
        WindowsFeature DSCServiceFeature
        {
            Ensure = 'Present'
            Name = 'DSC-Service'
        }

        # If using a certificate from a local Active Directory Enterprise Root Certificate Authority,
        # complete a request and install the certificate
        xCertReq SSLCert
        {
            CARootName = $Node.CARootName
            CAServerFQDN = $Node.CAServerFQDN
            Subject = $Node.CertSubject
            AutoRenew = $Node.AutoRenew
            Credential = $Node.Credential
        }

        # Use the DSC resource to simplify deployment of the web service.  You might also consider
        # modifying the default port, possibly leveraging port 443 in environments where that is
        # enforced as a standard.
        xDSCWebService PSDSCPullServer
        {
            Ensure = 'Present'
            EndpointName = 'PSDSCPullServer'
            Port = 8080
            PhysicalPath = "$env:SYSTEMDRIVE\inetpub\wwwroot\PSDSCPullServer"
            CertificateThumbPrint = 'CertificateSubject'
            CertificateSubject = $Node.CertSubject
            ModulePath = "$($Node.SMBShare)\DscService\Modules"
            ConfigurationPath = "$($Node.SMBShare)\DscService\Configuration"
            State = 'Started'
            DependsOn = '[WindowsFeature]DSCServiceFeature'
        }

        # Validate web config file contains current DB settings
        xWebConfigKeyValue CorrectDBProvider
        {
            ConfigSection = 'AppSettings'
            Key = 'dbprovider'
            Value = 'System.Data.OleDb'
            WebsitePath = 'IIS:\sites\PSDSCPullServer'
            DependsOn = '[xDSCWebService]PSDSCPullServer'
        }
        xWebConfigKeyValue CorrectDBConnectionStr
        {
            ConfigSection = 'AppSettings'
            Key = 'dbconnectionstr'
            Value = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\WindowsPowerShell\DscService\Devices.mdb;'
            WebsitePath = 'IIS:\sites\PSDSCPullServer'
            DependsOn = '[xDSCWebService]PSDSCPullServer'
        }

        # Stop the default website
        xWebsite StopDefaultSite
        {
            Ensure = 'Present'
            Name = 'Default Web Site'
            State = 'Stopped'
            PhysicalPath = 'C:\inetpub\wwwroot'
            DependsOn = '[WindowsFeature]DSCServiceFeature'
        }
    }
}

$configData = @{
    AllNodes = @(
        @{
            NodeName = 'localhost'
            ServerName = $ServerName
            DomainName = $DomainName
            CARootName = $CARootName
            CAServerFQDN = $CAServerFQDN
            CertSubject = $CertSubject
            AutoRenew = $true
            SMBShare = $SMBShare
            Credential = $Credential
            RebootNodeifNeeded = $true
            CertificateFile = 'c:\PullServerConfig\Cert.cer'
            Thumbprint = 'B9A39921918B466EB1ADF2509E00F5DECB2EFDA9'
            }
        )
    }

PullServer -ConfigurationData $configData -OutputPath 'C:\PullServerConfig\'
Set-DscLocalConfigurationManager -ComputerName localhost -Path 'C:\PullServerConfig\'
Start-DscConfiguration -Wait -Force -Verbose -Path 'C:\PullServerConfig\'

# .\Script.ps1 -ServerName web1 -domainname 'test.pha' -carootname 'test-dc01-ca' -caserverfqdn 'dc01.test.pha' -certsubject 'CN=service.test.pha' -smbshare '\\sofs1.test.pha\share'

Weryfikowanie funkcji serwera ściąganiaVerify pull server functionality

# This function is meant to simplify a check against a DSC pull server. If you do not use the
# default service URL, you will need to adjust accordingly.
function Verify-DSCPullServer ($fqdn) {
    ([xml](Invoke-WebRequest "https://$($fqdn):8080/psdscpullserver.svc" | % Content)).service.workspace.collection.href
}

Verify-DSCPullServer 'INSERT SERVER FQDN'
Expected Result:
Action
Module
StatusReport
Node

Konfigurowanie klientówConfigure clients

Configuration PullClient {
    param(
    $ID,
    $Server
    )
        LocalConfigurationManager
                {
                    ConfigurationID = $ID;
                    RefreshMode = 'PULL';
                    DownloadManagerName = 'WebDownloadManager';
                    RebootNodeIfNeeded = $true;
                    RefreshFrequencyMins = 30;
                    ConfigurationModeFrequencyMins = 15;
                    ConfigurationMode = 'ApplyAndAutoCorrect';
                    DownloadManagerCustomData = @{ServerUrl = "http://"+$Server+":8080/PSDSCPullServer.svc"; AllowUnsecureConnection = $true}
                }
}

PullClient -ID 'INSERTGUID' -Server 'INSERTSERVER' -Output 'C:\DSCConfig\'
Set-DscLocalConfigurationManager -ComputerName 'Localhost' -Path 'C:\DSCConfig\' -Verbose

Dodatkowe odwołania, fragmenty kodu i przykładyAdditional references, snippets, and examples

W tym przykładzie pokazano, jak ręcznie zainicjować połączenie z klientem (wymaga WMF5) do testowania.This example shows how to manually initiate a client connection (requires WMF5) for testing.

Update-DscConfiguration –Wait -Verbose

Polecenie cmdlet Add-DnsServerResourceRecordName służy do dodawania rekordu CNAME typu do strefy DNS.The Add-DnsServerResourceRecordName cmdlet is used to add a type CNAME record to a DNS zone.

Funkcja PowerShell służąca do tworzenia sum kontrolnych i publikowania pliku MOF usługi DSC na serwerze SMB ściągania automatycznie generuje wymaganą sumę kontrolną, a następnie kopiuje zarówno pliki konfiguracji MOF, jak i sum kontrolnych do serwera ściągania SMB.The PowerShell Function to Create a Checksum and Publish DSC MOF to SMB Pull Server automatically generates the required checksum, and then copies both the MOF configuration and checksum files to the SMB pull server.

Dodatek — informacje o typach plików danych usługi ODATAAppendix - Understanding ODATA service data file types

Plik danych jest przechowywany w celu utworzenia informacji podczas wdrażania serwera ściągania zawierającego usługę sieci Web OData.A data file is stored to create information during deployment of a pull server that includes the OData web service. Typ pliku zależy od systemu operacyjnego, zgodnie z poniższym opisem.The type of file depends on the operating system, as described below.

  • Windows Server 2012 — typ pliku będzie zawsze .mdbWindows Server 2012 - The file type will always be .mdb
  • Windows Server 2012 R2 — typ pliku będzie domyślnie, .edb chyba że zostanie .mdb określony w konfiguracjiWindows Server 2012 R2 - The file type will default to .edb unless a .mdb is specified in the configuration

W zaawansowanym przykładowym skrypcie instalacji serwera ściągania znajduje się również przykład, jak automatycznie kontrolować ustawienia plików web.config, aby zapobiec ewentualnemu wystąpieniu błędu spowodowanego przez typ pliku.In the Advanced example script for installing a Pull Server, you will also find an example of how to automatically control the web.config file settings to prevent any chance of error caused by file type.