Condividi tramite


Guida alla distribuzione di soluzioni Servizi RIA

In questo argomento vengono descritte le attività da completare quando si esegue la distribuzione dell'applicazione WCF RIA Services in un server Web. Per la distribuzione in un server Web è necessario che nel server sia installato .NET Framework 4 e Internet Information Server (IIS) 6 o 7 per ospitare l'applicazione. È inoltre necessario che nel server Web sia disponibile RIA Services , ma poiché non è possibile semplicemente installarlo, verranno illustrate altre opzioni di distribuzione. Per una corretta distribuzione è necessario configurare correttamente l'applicazione Web ASP.NET. Vengono pertanto descritte le impostazioni richieste nel file Web.config. Infine, viene illustrata la procedura di pubblicazione.

I problemi che possono verificarsi durante la distribuzione di un'applicazione RIA Services e le indicazioni sulla relativa gestione vengono descritti nell'argomento Risoluzione dei problemi relativi alla distribuzione di una soluzione Servizi RIA.

Confermare che .NET Framework 4 sia installato nel server Web

Affinché un'applicazione RIA Services funzioni, è necessario che nel server Web sia installato .NET Framework 4. Per ulteriori informazioni, vedere Installazione di .NET Framework.

Confermare che IIS sia installato nel server Web

Affinché un'applicazione RIA Services funzioni, è necessario che nel server Web sia installato Internet Information Server (IIS) 6 o 7. Per ulteriori informazioni, vedere Installazione e distribuzione di IIS 7 e Installazione di IIS 6.0.

Installare Servizi RIA nel server Web

È necessario che gli assembly di RIA Services siano disponibili nel server Web. È consigliabile installare RIA Services nel server Web in cui verrà ospitata l'applicazione. Se non è possibile effettuare questa operazione a causa della mancanza di autorizzazioni o di altri problemi, è possibile rendere disponibili tali servizi nel server Web anche includendoli nella cartella bin del progetto quando viene pubblicato o installandoli nella Global Assembly Cache (GAC).

  • Distribuzione della cartella bin

    Quando si distribuisce l'applicazione, un'opzione è includere gli assembly di RIA Services nella cartella bin del progetto. Per effettuare questa operazione in Visual Studio, è necessario selezionare in Esplora soluzioni tutti i riferimenti all'assembly del progetto Web che devono essere inclusi e impostare la proprietà Copia localmente su True nella finestra Proprietà. I due assembly che devono essere sempre inclusi sono

    • System.ServiceModel.DomainServices.Server.dll

    • System.ServiceModel.DomainServices.Hosting.dll

    Se si impostano i valori di queste proprietà su True, alla successiva compilazione della soluzione gli assembly verranno copiati nella cartella bin. Una volta che gli assembly sono stati copiati nella cartella bin, quando si pubblica il sito verranno copiati nel server Web.

  • Se si utilizza Entity Framework per accedere a un database, sarà inoltre necessario aggiungere un riferimento all'assembly System.ServiceModel.DomainServices.EntityFramework.dll.

  • Se si utilizza LINQ to SQL per accedere ai dati, sarà necessario aggiungere un riferimento all'assembly Microsoft.ServiceModel.DomainServices.LinqToSql.dll.

  • Distribuzione nella Global Assembly Cache

    Anziché copiare gli assembly di RIA Services nella cartella bin di ogni progetto in cui vengono utilizzati, è possibile installare gli assembly nella Global Assembly Cache. Tutti gli assembly nella Global Assembly Cache sono disponibili a tutte le applicazioni del server. Questo approccio è più facile da gestire poiché un assembly deve essere aggiornato solo nella Global Assembly Cache anziché in ogni cartella bin.

    Per installare gli assembly di RIA Services nella Global Assembly Cache di un server Web, immettere il comando seguente.

    msiexec /i RiaServices.msi SERVER=TRUE
    

Configurare il server Web

Per la distribuzione di un'applicazione RIA Services in un server Web è necessario che nei file Web.config gli elementi e gli attributi siano configurati correttamente. Il file Web.config gestisce la configurazione dell'applicazione ASP.NET e viene creato automaticamente quando si sceglie di ospitare un'applicazione Silverlight con un progetto Web ASP.NET nella procedura guidata Nuova applicazione Silverlight. Inizialmente questo file Web.config specifica solo che il framework di destinazione è .NET Framework 4.0 nell'elemento <compilation>. I valori effettivi necessari per la distribuzione vengono impostati nel file Web.config per impostazione predefinita quando si aggiunge un dominio del servizio al progetto Web di un'applicazione RIA Services mediante la procedura guidata Aggiungi una nuova classe di servizio del dominio.

Il file Web.config contiene diverse sezioni che sono fondamentali per la distribuzione. In tali sezioni vengono configurati la modalità host ASP.NET, IIS e la modalità di autenticazione. In questo argomento vengono illustrati i valori degli elementi di configurazione di tali sezioni necessari per distribuire un'applicazione RIA Services . La procedura guidata imposta questi valori per impostazione predefinita, ma è possibile che sia necessario modificarli con varie procedure prima di tentare la pubblicazione. Pertanto è utile conoscere i valori corretti e verificare che siano impostati come previsto. Nell'argomento vengono inoltre descritte le diverse procedure che utilizzano la procedura guidata di Internet Informazioni Service (IIS) per garantire che IIS sia configurato coerentemente con i valori specificati nel file Web.config.

I servizi del dominio di RIA Services sono servizi Windows Communication Foundation (WCF) che se ospitati con ASP.NET devono essere ospitati nella modalità di compatibilità ASP.NET. Questo requisito non può essere impostato nel codice e deve essere specificato nel file Web.config. La modalità di compatibilità ASP.NET viene abilitata impostando la proprietà aspNetCompatibilityEnabled su true nell'elemento <ServiceHostingEnvironment> della sezione <system.serviceModel>:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>

Il valore true è impostato per impostazione predefinita. La modalità compatibilità consente a un servizio del dominio WCF di utilizzare tutte le funzionalità della piattaforma dell'applicazione Web ASP.NET. Se si imposta l'attributo multipleSiteBindingsEnabled su true, è possibile abilitare più associazioni IIS per sito in un servizio con il protocollo HTTP. Per ulteriori informazioni sulle conseguenze dell'abilitazione di tali funzionalità, vedere Servizi WCF e ASP.NET.

Warning Attenzione:
I servizi WCF dispongono di molte opzioni di hosting oltre a IIS. Possono essere indipendenti in un'applicazione gestita, ospitati in un Servizio Windows gestito o ospitati dal servizio Attivazione processo Windows (WAS). Pertanto i servizi WCF devono scegliere esplicitamente la modalità compatibilità ASP.NET. Mentre i servizi del dominio di RIA Services possono solo essere ospitati da IIS e pertanto sono limitati all'utilizzo del trasporto HTTP.

La procedura guidata Aggiungi una nuova classe di servizio del dominio consente di aggiungere un elemento <add> dell'elemento <httpModules> all'interno della sezione system.web che è richiesto da IIS 6. Verificare che .NET Framework 4.0 sia stato definito nell'elemento <compilation> di questa sezione e che il modulo del servizio del dominio sia stato aggiunto con i valori seguenti:

<system.web>
  <httpModules>
    <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </httpModules>
  <compilation targetFramework="4.0" />
</system.web>

La procedura guidata Aggiungi una nuova classe di servizio del dominio consente di aggiungere un elemento <modules> nella sezione <system.webserver> che è richiesto da IIS 7. Confermare che contiene i valori seguenti:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <add name="DomainServiceModule" preCondition="managedHandler"
        type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </modules>
</system.webServer>
TipSuggerimento:
Per distribuire l'applicazione è sufficiente conservare gli elementi di configurazione necessari per la versione di IIS che si sta utilizzando. Se ad esempio viene eseguita la distribuzione con IIS7, è consigliabile rimuovere gli elementi che configurano IIS6. Tuttavia conservare entrambi i set di elementi di hosting non comporta alcun problema.

Quando si utilizza una soluzione RIA Services , è possibile abilitare solo uno schema di autenticazione. L'elemento <authentication> nel file Web.config consente di configurare lo schema di autenticazione ASP.NET per un'applicazione ASP.NET. Lo schema di autenticazione determina la modalità per identificare gli utenti che desiderano visualizzare l'applicazione ASP.NET. L'attributo di modalità specifica lo schema di autenticazione. Controllare l'elemento <authentication> del file Web.config e degli altri file di configurazione presenti nella gerarchia per assicurarsi che non siano abilitati più schemi (Windows, Form, Passport, Nessuno). La sezione non viene creata in modo esplicito per impostazione predefinita quando si crea un servizio del dominio per un'applicazione RIA Services . Il valore predefinito utilizzato quando l'elemento non è specificato in modo esplicito è <authentication mode = “Windows”>. Dopo la pubblicazione dell'applicazione Web, è necessario controllare che in IIS sia abilitata solo l'autenticazione di Windows, se si utilizza tale opzione, e tale procedura viene descritta di seguito.

Per ulteriori informazioni sulle impostazioni di Web.config, vedere Configurazione ASP.NET.

Distribuire l'applicazione RIA

Pubblicare l'applicazione Web in IIS

  1. Aprire l'applicazione RIA Services in Visual Studio 2010. Per la pubblicazione sono necessari privilegi di amministratore, pertanto assicurarsi di fare clic con il pulsante destro del mouse su Visual Studio 2010 nel menu Fare clic per iniziare e di scegliere Esegui come amministratore quando si apre l'applicazione.

  2. Selezionare il progetto Web in Esplora soluzioni, fare clic con il pulsante destro del mouse, quindi scegliere Pubblica.

  3. Scegliere Distribuzione Web come metodo di Pubblicazione, specificare localhost (in caso di pubblicazione in locale o il nome del server remoto in caso di pubblicazione in remoto) come URL servizio e specificare Sito Web predefinito (se il server è locale) come Sito nella casella Sito/applicazione e il nome dell'applicazione desiderata come applicazione sempre nella stessa casella. Per pubblicare ad esempio un'applicazione RIA Services denominata RIAApp1 in locale, immettere Sito Web predefinito/RIAApp1.

  4. Selezionare le caselle Contrassegna come applicazione IIS nella destinazione e Lascia file aggiuntivi nella destinazione (non eliminare).

  5. Fare clic sul pulsante Pubblica.

  6. Aprire Gestione Internet Information Services (IIS), passare all'applicazione Web appena pubblicata nell'elenco Sito Web predefinito contenuto nel riquadro Connessioni e selezionare la scheda Visualizzazione contenuto nella parte inferiore della finestra.

  7. Per aprire una pagina di test per il sito, selezionare la pagina server ASP.NET, fare clic con il pulsante destro del mouse e selezionare Sfoglia.

TipSuggerimento:
Se gli assembly richiesti dalle applicazioni RIA Services sono stati distribuiti nella cartella bin, si troveranno nella cartella di file bin in Gestione IIS. Questa cartella conterrà anche l'assembly per l'applicazione Web.
Warning Attenzione:
Se non è possibile visualizzare l'applicazione nella pagina di test, significa che sono presenti problemi con ASP.NET o Silverlight. Per informazioni aggiuntive sulla distribuzione di Silverlight, vedere Distribuzione e localizzazione.

Specificare la modalità di autenticazione in Gestione IIS

  1. Selezionare l'applicazione Web nel riquadro Connessioni di Gestione IIS.

  2. Fare doppio clic su Autenticazione nel gruppo IIS in Visualizzazione funzionalità.

  3. Verificare che Autenticazione di Windows (o qualsiasi modalità di autenticazione che si desidera utilizzare) sia abilitata. IIS supporta solo l'Autenticazione anonima per impostazione predefinita, pertanto questa procedura è in genere necessaria per modificare tale impostazione. ASP.NET consente di abilitare più modalità di autenticazione e Gestione IIS consente tali impostazioni. RIA Services consente di utilizzare l'Autenticazione basata su form insieme all'Autenticazione anonima (consentendo agli utenti di accedere alla pagina di accesso), mentre se si sceglie l'Autenticazione di Windows è possibile utilizzare solo quella. Fare clic con il pulsante destro del mouse su uno dei Nomi e selezionare Abilita o Disabilita per limitare l'autenticazione abilitata a una sola modalità.

Warning Attenzione:
Se non viene visualizzato Autenticazione di Windows o le altre modalità oltre all'Autenticazione anonima, è necessario installare i componenti mancanti di IIS. Per ulteriori informazioni su tali procedure, vedere Installazione e distribuzione di IIS 7.

In caso di problemi con la visualizzazione della pagina di test, consultare l'argomento Risoluzione dei problemi relativi alla distribuzione di una soluzione Servizi RIA per assistenza.