Posted on

How to Deploy ASP.NET Core Web API on IIS Windows Server

(Tested on windows server 2012r2)

Install the .NET Core Hosting Bundle on Windows Server

The .NET Core Hosting bundle is an installer for the .NET Core Runtime and the ASP.NET Core Module. The bundle allows ASP.NET Core apps to run with IIS.

Current version:.NET Core Hosting Bundle installer (direct download)

(for this test we installed version .Net Core 8 on win 2012r2)

Visual Studio : Publish on Folder

After creating the ASP.NET Core application in Visual Studio, we can use the Visual Studio Publish Tool to deploy and run our app. For this project, choose to publish to a folder. Choose the folder and hit “Finish”.

In the next screen, where you see the settings for this deploy, click on “More Actions” and then on “Edit”.

Select :

  • Deployment Mode : Complete
  • Target Runtime : win-x64 (for our server)
  • File Publish Options : Delete all existing files prior to publish (flagged)
  • Database : Default Connection edit (if yuu need it)

Save this configuration, control it an Publish.

Copy the contents of the folder on the IIS server to the folder dedicated to the new site.

IIS and new site

Create the site on IIS. For the Application Pool you have to use default .NET CLR Version : v4.0.

Open your browser and call up the site. You receive the “page not found” error (404).

Remember that a site that hosts only calls web api. To verify that it works you can use the controller that Visual Studio sets by default when creating a site. Then type:

https://www.mynewapisite.com/WeatherForecast

and you will get a result. The site works!


Posted on

Velocità dei dischi in RAID

Proviamo a fare un quadro delle velocità dei dischi quando vengono raggruppati in un RAID. Tratteremo l’argomento arrivando a definire le prestazioni del raid relativamente alle prestazioni del singolo disco e della sua numerosità. Ci sono altri parametri che influenzano la velocità (come per esempio la cache)  ma non sono così rilevanti in termini assoluti.

Per capire le prestazioni, osserviamo 2 misure : la velocità di lettura di dati da un raid e la velocità di scrittura dei dati in un raid.  Per arrivare a definire queste due variabili, in questo articolo indicheremo con “N” il numero dei dischi che compongono il raid e con “V” la velocità del singolo disco che compone il raid.

Le prestazioni di archiviazione vengono misurate in IOPS (operazioni di input/ouput per secondo). In effetti esistono due velocità diverse: parleremo di RIOPS per indicare le operazioni di lettura e WIOPS per indicare le operazioni di scrittura.

Quindi la variabile V che indica la velocità del singolo disco è in realtà la IOPS.

RAID 0

Il RAID 0 è il più semplice di tutti. Un certo numero di dischi vengono messi insieme e visti dal sistema come un unico grande disco. Non esiste ridondanza dei dati, quindi la rottura di uno solo dei nostri dischi comporta la perdita di tutti i dati.

Il RAID 0 è il più veloce di tutti.

velocità RAID 0 = (N dischi) * (V singolo disco)

In generale il RAID-0 composto da 2 dischi  è sempre più veloce di un singolo disco perché è possibile eseguire simultaneamente le operazioni di lettura e scrittura. Il RAID 0 divide i dati in blocchi e li distribuisce su più unità. Se per esempio devo leggere i numeri da 1 a 100 memorizzati dentro il mio raid, il controller del raid potrà leggere contemporaneamente i numeri da 1 a 50 e da 51 a 101 perché si trovano in blocchi diversi : quindi il tempo di lettura dei numeri a 1 a 100 sarà dimezzato.

RAID 1

Nel RAID 1 dati vengono copiati 2 volte. Ne consegue che la capacità totale dell’array ne risulterà dimezzata.

Il RAID 1 è utile per operazioni di lettura molto veloci, tuttavia è più lento durante la scrittura sui dischi, poiché i dati devono essere scritti due volte. RAID 1 richiede almeno due dischi fisici e può essere eseguito con un numero “pari” di dischi.

Dovendo scrivere 2 volte il dato la velocità si dimezza :

velocità SCRITTURA RAID 1 = (N dischi) * (V singolo disco) / 2

La velocità di lettura è uguale a quella del RAID 0 a parità di numero di dischi ma è doppia a parità di capacità totale : perché per avere la stessa capacità raddoppiamo ii dischi. Spiegando il raid 10  entreremo nel dettaglio dei calcoli perchè le velocità sono le stesse.

RAID 10

In pratica un RAID 10 è un raid 0 ma con i dati scritti 2 volte. E’ l’insieme di un raid 1 e di un raid 0 (1 + 0 = 10). Dato che lo stesso dato viene scritto 2 volte nel raid, la capacità totale del RAID risulta dimezzata.

Per fare un raid 10 occorrono minimo 4 dischi e numero di dischi pari.

 

Dovendo scrivere 2 volte il dato la velocità si dimezza :

velocità SCRITTURA RAID 10 = (N dischi) * (V singolo disco) / 2

In realtà a parità di capacità totale del raid e non del numero di dischi, la velocità di scrittura di un raid 0 coincide con quella del raid 10. Supponiamo di avere un raid 0 con 2 hard disk da 4TB, totale 8TB. Per avere la stessa capacità con un RAID 10, utilizzando lo stesso tipo di hard disk, dobbiamo comprare 4 dischi da 4TB. totale sempre 8TB (perché la capacità si dimezza).

velocità SCRITTURA RAID 0 = (N dischi) * (V singolo disco) = 2 * V

velocità SCRITTURA RAID 10 = (N dischi) * (V singolo disco) = 4 * V / 2 = 2 * V

Inoltre a parità di capacità, e quindi aumentando il numero di dischi per ottenere il raid 10, la velocità di lettura del raid 10 raddoppia rispetto al raid 0 per quanto detto sopra descrivendo la lettura dei dati in un raid 0

velocità LETTURA RAID 0 = (N dischi) * (V singolo disco) = 2 * V

velocità LETTURA RAID 10 = (N dischi) * (V singolo disco) = 4 * V

RAID 5

Per descrivere il RAID 5, introduciamo il concetto di parità. La parità è un valore di controllo dei dati : quando viene scritto un dato viene scritto anche il dato di parità che per esempio contiene il numero totale dei bit dei dati appena scritti. Questo è un dato di controllo : quando leggiamo i dati appena scritti se il numero totale dei bit non coincide con quelli di parità memorizzati prima, significa che il raid è in errore.

Per creare un raid 5 servono almeno 3 dischi. Uno dei dischi si può rompere ed il sistema continuerà a lavorare. Dovete però cambiare il disco rotto perchè, al successivo guasto di un altro disco, perderete tutti i dati.

La capacità totale di un array in RAID 5 e data dalla capacita totale dei dischi meno 1. Quindi nel RAID 5 si perde solo un disco. Per questo motivo è sicuramente il raid chc impiega meglio le capacità (e quindi il costo) dei dischi. Di contro è un raid molto lento.

Quando viene scritto un dato su un raid 5 il controller deve leggere la parità, verificarla e riscriverla. Ciò significa che un array RAID 5 dovrà leggere i dati, leggere la parità, scrivere i dati e infine scrivere la parità : quattro operazioni per ciascuna operazione effettiva di scrittura. La velocità di scrittura diminuisce, rispetto alla condizione normale di un fattore 4.

velocità SCRITTURA RAID 5 = (N dischi) * (V singolo disco) / 4

In un raid 5 uno dei dischi dell’array viene perso. Semplifichiamo dicendo che viene usato proprio per scrivere i dati di parità. Se quindi vogliamo ottenere un disco da 8 TB in raid 5, dobbiamo acquistare 3 dischi da 4TB.

velocità SCRITTURA RAID 5 = (N dischi) * (V singolo disco) = 3 * V / 4

velocità LETTURA RAID 5 = (N dischi) * (V singolo disco) = 3 * V

RAID 6

RAID 6 su RAID 5 con un ulteriore secondo livello di parità, quindi è più sicuro di RAID 5. Ogni operazione di scrittura richiede ai dischi di leggere i dati, leggere la prima parità, leggere la seconda parità, scrivere i dati, scrivere la prima parità e infine scrivere la seconda parità. La velocità di scrittura diminuisce, rispetto alla condizione normale di un fattore 6.

velocità SCRITTURA RAID 6 = (N dischi) * (V singolo disco) / 6

Quando si fa un raid un raid 6 si perdono ben 2 dischi. Se quindi vogliamo ottenere un disco da 8 TB in raid 6, dobbiamo acquistare 4 dischi da 4TB. (nb in questo esempio raid 10 e raid 6 richiedono  entrambi 4 dischi ma nessuno, in queste condizioni, farebbe il raid 6 rispetto al raid 10 perché questo è più veloce)

velocità SCRITTURA RAID 6 = (N dischi) * (V singolo disco) = 4 * V / 6 = 2 * V / 3   (2 terzi più lenta del 10)

velocità LETTURA RAID 6 = (N dischi) * (V singolo disco) = 4 * V

IOPS E INTERFACCE

Dispositivo IOPS Interfaccia
Unità RPM 5400 75-100 IOPS SATA III
Unità RPM 7200 125-150 IOPS SATA III
Unità RPM 10.000 140 IOPS SAS
Unità RPM 15.000 175-210 IOPS SAS
Unità SSD 40K-100K+ IOPS* SATA III

Documentazione

 

Posted on

Windows server – Active Directory – useful links

Move active directory roles from a domanin controller ti another

VERIFICARE E MODIFICARE I RUOLI FSMO DI UN DOMINIO WINDOWS

Backup Domain Controller

Aggiungere un Backup Domain Controller ad un dominio Active Directory esistente

Installing licenses for Remote Desktop

Licensing Mode for Remote Desktop Session Host is not Configured

Modalità gestione licenze di Desktop remoto non configurata

Gli aggiornamenti dinamici DHCP delle registrazioni DNS vengono ritardati o non elaborati

https://learn.microsoft.com/it-it/troubleshoot/windows-server/networking/dhcp-dynamic-updates-of-dns-registrations-delayed

Posted on

Verifica dei dati di un dominio : gestore, dns, hosting, mail server, spf

Il nostro obbiettivo è analizzare l’hosting di un dominio: chi gestisce l’hosting e quindi i dns; dove risiede il sito internet; dove risiede il mail server.

Il primo tool da utilizzare è un “WHOIS” come, per esempio, https://whois.domaintools.com/. Con questo tool è possibile capire chi gestisce il dominio.

Nella pagina che risulta dall’interrogazione, inserendo il dominio da cercare, dovreste trovare gli indirizzi dei dns che gestiscono i dati del dominio.

Per verificare i DNS usiamo https://mxtoolbox.com/DNSLookup.aspx. Inserite il dominio da cercare. Nella maschera successiva potete cliccare su “dns check”.

Anche con questo tool avrete la lista dei dns ed in più il relativo indirizzo ip.

Per interrogare i dns, cioè avere una visione di tutti gli indirizzi utilizzati si può utilizzare https://network-tools.com/dns-records/.

Se vi sembra che manchino alcuni dati potete interrogare direttamente i dns trovati.

Aprite un prompt di dos e digitate il comando

nslookup -type=any dominio dns

Per esempio se sto cercando informazioni sul dominio miodominio.it e ho trovato che il suo dns è ns1.gestore.com, scriverò :

nslookup -type=any miodominio.it ns1.gestore.com

PING

Nella lista dei record DNS dovreste trovare anche l’ip del server che ospita il dominio. Per verificare il dato vi basta aprire un prompt di dos e digitare

ping www.miodominio.it

Il risultato del ping vi mostra l’indirizzo ip del server.

Per verificare dove risieda il server potete utilizzare il tool https://whoer.net/checkwhois inserendo l’ip trovato precedentemente.

MAIL SERVER

Per avere una idea di quanto sia configurato bene o male un mail server potete usare il tool https://www.emailsecuritygrader.com

RECORD SPF

Controllato correttezza record spf con https://mxtoolbox.com/spf.aspx

Controllo correttezza record spf : https://www.kitterman.com/spf/validate.html

 

 

Posted on

Error “CredSSP” Error using rdp on Windows Server 2012 R2

Scenario

You are trying to connect via rdp to windows server 2012 r2 and you receive this error :

An authentication error has occurred.
The function is not supported.
Remote Computer: your hostname
This could be due to CredSSP encryption oracle remediation.

Solution

Download and install KB4103725 form Microsoft Update Catalog

After installing you need to restart the server.

Posted on

prerequisites to install veeam backup and replication

To install Veem Backup and Replication on Windows 2012 server, you need :

  1. Sql server 2014 Exprees
  2. Net Framework 3.5 (install it directly from your windows server). Necessary for Sql server Managment Studio 2014
  3. Sql server managment studio 2014
  4. From Microsoft® SQL Server® 2014 Feature Pack (https://www.microsoft.com/en-us/download/details.aspx?id=42295), you have to download and install
    1. SQLSysClrTypes.msi
    2. SharedManagementObjects.msi
  5. MICROSOFT® REPORT VIEWER 2015 RUNTIME
  6. Windows 10 Universal C Runtime

 

Posted on

Virtualizzazione for dummies

Quando accendete il vostro computer vi trovate in genere di fronte a Windows. Windows è il programma principale del computer, senza il quale il computer sarebbe una scatola vuota. Viene chiamato Sistema Operativo. Dentro a Windows avete decine di altri programmi che usate quotidianamente.

L’hardware del vostro computer (l’hard disk, la ram, il processore, etc) sono stati costruiti per ospitare un solo sistema operativo. In pratica è come comprare un motorino che quindi può trasportare solo voi. Il motorino è il computer …. voi rappresentate windows.

I SERVER ieri

I server sono grossi computer, molto potenti. Fino a qualche anno fa venivano venduti anche’essi con un sistema operativo, di solito Windows Server o Linux Server. I server eseguono diverse applicazioni molto importanti , rendendole fruibili ai client cioè ai vostri computer. Per esempio, i server ospitano i siti internet a cui vi collegate; dentro ogni server ci sono migliaia di siti internet diversi a cui si collegano milioni di utenti (Voi). Oppure ospitano tutti i file di una azienda : i file della produzione, della progettazione, della amministrazione : tutti i vari reparti aziendali trovano nel server il materiale con cui lavorare.

Per una azienda quindi il server è il computer più importante: se si rompe questo non lavora più nessuno fintanto che non viene riparato. Se si rompe un server che ospita siti internet, tutti i siti saranno irraggiungibili.

Per ovviare a queste problematiche si è pensato di dividere il carico di lavoro dei server : ogni server ospita un solo sito internet; esiste un server per i files del reparto amministrazione e un server per la progettazione, etc. Se si rompe un server, solo il servizio che stava dando verrà a mancare: le altre funzioni risultano attive sugli altri server.

Per ottenere tutto ciò ci è venuto in aiuto un miglioramento delle tecnologie hardware e il concetto di virtualizzazione.

I SERVER oggi e la VIRTUALIZZAZIONE

Oggi i server sono computer ancora più potenti rispetto al passato ed alle risorse richieste dalle applicazioni moderne. I server oggi vengono venduti senza sistema operativo : per continuare nel nostro parallelismo è come comprare un camion vuoto.

I server sono così potenti che possono tenere al loro interno decine di sistemi operativi diversi cioè di macchine che fanno azioni diverse: ognuna di queste macchine viene chiamata “macchina virtuale”. Si realizza così una netta separazione tra ambienti : ogni macchina svolge una sola funzione ben definita e “mancando” la macchina viene meno una sola funzione.

I problemi arrivano solo se …. si rompe il camion, ma anche qui ci sono delle tecniche per mitigare i disagi.