Introduzione


Dopo intensi mesi di sviluppo e innumerevoli build Insider, il Creators Update, nuovo major update di Windows 10, dal 5 aprile è disponibile per gli utenti che decideranno di scaricarlo manualmente tramite l'Assistente Aggiornamento.

Come indica il nome, questo major update è dedicato a tutti coloro che amano "creare", da una presentazione in PowerPoint, ad un'immagine 3D o al codice di un sito Web.

Le novità sono tantissime ed interessano ogni parte del sistema operativo. Il Creators Update è molto più performante, reattivo e versatile; il tutto si traduce in un'esperienza d'uso quotidiano più soddisfacente.

Nonostante tutto, può presentarsi qualche problema. In questo caso, descriveremo un problema che si è verifica con la gestione di FILESTREAM in SQL Server.

Per chi non conoscesse la funzionalità. FILESTREAM consente l'archiviazione nel file system di dati non strutturati (ad esempio documenti e immagini) da parte delle applicazioni basate su SQL Server (Per maggiori informazioni https://msdn.microsoft.com/it-it/library/gg471497.aspx).

Informazioni su Filestream


Per utilizzare FILESTREAM
, è necessario abilitarlo nell'istanza del Motore di database di SQL Server.

  1. Fare clic sul pulsante Start, scegliere Tutti i programmi, SQL Server ****, Strumenti di configurazione e quindi Gestione configurazione SQL Server.
  2. Nell'elenco dei servizi fare clic con il pulsante destro del mouse su Servizi di SQL Server e quindi scegliere Apri.
  3. Nello snap-in Gestione configurazione SQL Server trovare l'istanza di SQL Server in cui si vuole abilitare FILESTREAM.
  4. Fare clic con il pulsante destro sull'istanza e quindi scegliere Proprietà.
  5. Nella finestra di dialogo delle proprietà di SQL Server **** fare clic sulla scheda FILESTREAM.
  6. Selezionare la casella di controllo Abilita FILESTREAM per l'accesso Transact-SQL.
  7. Se si vogliono leggere e scrivere dati FILESTREAM da Windows, fare clic su Abilita FILESTREAM per l'accesso tramite il flusso di I/O dei file. Immettere il nome della condivisione di Windows nella casella Nome condivisione di Windows.
  8. Se ai dati FILESTREAM archiviati in tale condivisione devono accedere client remoti, selezionare Consenti ai client remoti l'accesso tramite flusso ai dati FILESTREAM.
  9. Fare clic su Applica.
  10. In SQL Server Management Studio fare clic su Nuova query per visualizzare l'editor di query.
  11. Nell'editor di query immettere il codice Transact-SQL seguente:

    EXEC sp_configure filestream_access_level, 2

    RECONFIGURE

  12. Fare clic su Esegui.
(Per maggiori informazioni https://msdn.microsoft.com/it-it/library/cc645923.aspx).

Eseguita l’abilitazione è possibile iniziare a progettare ed utilizzare un database FILESTREAM.

Analizziamo il problema

Tutto funziona regolarmente fin quando non viene applicato l’aggiornamento di Windows 10 alla major update Creator Update.

Una volta installato, infatti, tutto sembra funzionare regolarmente; tuttavia, dopo il primo riavvio del sistema operativo, FILESTREAM smette di funzionare rendendo i database non più accessibili (Fig. 1).  

fig-1
Fig. 1

   Conseguentemente, tramite Entity Framework con un approccio Code First, le migrations non funzioneranno più e quindi non sarà più possibile ripristinare e/o modificare nessun il database (Fig. 2).  

fig-2
Fig. 2

   Inoltre, creando manualmente un nuovo database tramite SQL Management Studio, la sezione FILESTREAM risulterà disabilitata (Fig. 3).  

fig-3
Fig. 3

   Infine, tramite il menù Start non sarà più disponibile il collegamento al Gestore configurazione SQL Server.

Come risolvere il problema


Come ripristinare il funzionamento di FILESTREAM?

  1. Nel menu Start utilizzare il comando Esegui per aprire il Gestore configurazione SQL Server utilizzando il percorso:
       SQL Server 2016    C:\Windows\SysWOW64\SQLServerManager13.msc
       SQL Server 2014    C:\Windows\SysWOW64\SQLServerManager12.msc
       SQL Server 2012    C:\Windows\SysWOW64\SQLServerManager11.msc
       SQL Server 2008    C:\Windows\SysWOW64\SQLServerManager10.msc

     

    Se il Gestore configurazione SQL Server è disponibile, passate al punto 4.

     

  1. Se, utilizzando il percorso relativo alla versione di SQL Server installata sul vs pc, il Gestore configurazione SQL Server non è disponibile, ripristinare l’installazione di SQL Server (Fig. 4).

 

fig-4 Fig. 4

 
  1. Ripristinata l’installazione di SQL Server, abbiamo nuovamente disponibile su Start il Gestore configurazione SQL Server (Fig. 5).

 

fig-5
Fig. 5

 
  1. Avviato il Gestore configurazione SQL Server, fare clic con il pulsante destro sull'istanza e quindi scegliere Proprietà (Fig. 6).

 

fig-6
Fig. 6

 
  1. Nella finestra di dialogo delle proprietà di SQL Server **** cliccando sulla scheda FILESTREAM potremmo notare che il servizio è attivo (Fig. 7). 

 

fig-7
Fig. 7


  • Allora perché FILESTREAM non risulta abilitato se invece è abilitato?

    Il problema viene causato dall’account utente “NT Service\MSSQLSERVER”, usato da SQL Server per l’accesso al sistema, che non viene gestito correttamente (Fig. 8).

 

fig-8
Fig. 8

 
  1. Sostituire l’account utente “NT Service\MSSQLSERVER” con l’account predefinito “Sistema Locale” e cliccare sul pulsante Applica (Fig. 9).

 

fig-9
Fig. 9

 
  1. Confermare la modifica dell’account cliccando sul pulsante Si (Fig. 10). L’istanza di SQL Server verrà riavviata automaticamente e l’utente di accesso sarà cambiato (Fig. 11).

 

fig-10
Fig. 10

fig-11
Fig. 11

Conclusioni

 
Per concludere, dopo aver modificato l'utente di accesso per il motore di SQL Server, FILESTREAM è stato ripristinato e possiamo verificare che:
  • il database è nuovamente accessibile (Fig. 12).

 

fig-12
Fig. 12

 
  • le migrations vengono eseguite correttamente (Fig. 13).

 

fig-13
Fig. 13

 
  • quando viene creato un nuovo database, alla pagina Filegroup, la sezione FILESTREAM è abilitata (Fig. 14).

 


Fig. 14