5

Oggi ho esercitato la mia frustrazione al massimo cercando di distribuire un'applicazione Lightswitch su un server Windows 2008 R2 con IIS 7.5. Al momento la navigazione verso l'applicazione, ho visualizzato il seguente execrated error:LightSwitch 'Microsoft-LightSwitch-Security-ServerGenerated-Implementation-AuthenticationService.svc' non esiste

Load operation failed for query 'GetAuthenticationInfo'. The remote server returned an error: NotFound.

Sia la traccia NET e registro eventi di server hanno questo da dire in proposito:

Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/63835064 Exception: System.Web.HttpException (0x80004005): The service '/Web/Microsoft-LightSwitch-Security-ServerGenerated-Implementation-AuthenticationService.svc' does not exist.

dettagli di configurazione sono le seguenti:

  • Ho selezionato "Non abilitare l'autenticazione" nelle mie opzioni di controllo di accesso.
  • Nelle opzioni di pubblicazione "Configurazione server applicazioni", seleziono la casella di controllo Server IIS con i prerequisiti deselezionata.
  • In "Pubblica output", sto creando un pacchetto sul mio disco locale. In seguito, copierò il pacchetto sul server e eseguendo manualmente .deploy.cmd, che sembra funzionare correttamente.
  • La connessione del mio database in "Altre connessioni" è corretta: si tratta di un accesso SQL che funziona dalla mia casella e altri siti su questo server si connettono allo stesso server DB senza problemi.

Sul lato server:

  • Il sito è in esecuzione in un proprio pool di app in .NET 4.0 modalità di integrazione, utilizzando l'ApplicationPoolIdentity.
  • Solo l'autenticazione anonima è abilitata.

Quello che ho provato:

  • installato tutte le cose Lightswitch per il 2011 e il 2012 dal Web Platform Installer.
  • Installato RiaServices.msi.
  • Riparato .NET 4.5.
  • Ran aspnet_regiis -i

Nessuno di questi ha avuto alcun effetto a tutti. L'unico suggerimento sull'errore in grassetto sopra riportato è che .svc viene generato in fase di esecuzione e genera un errore 404 se si verifica qualche altro problema nella fine di WCF. (Ecco perché ho provato l'installazione RiaServices.msi.)

Sono in grado di "Pubblicare da remoto su un server ora" sul mio IIS Express locale e l'app funziona correttamente. La copia di questi file sul server remoto produce comunque lo stesso risultato di prima.

Qualche suggerimento su come risolvere questo problema ulteriormente?

risposta

4

Il problema era che l'applicazione Lightswitch si stava distribuendo con Microsoft.Data.Services 5.0.2.0, ma Microsoft.LightSwitch.Server 11.0.0.0 deve fare riferimento a Microsoft.Data.Services 5.0.0.0. Una volta distribuito 5.0.0.0 sul server Web, l'applicazione è stata eseguita come previsto.

Ho trovato questo problema cercando di passare direttamente a /Microsoft.LightSwitch.SecurityData.svc, che è un servizio statico che distribuisce con l'applicazione e quindi seguendo le istruzioni YSOD.

+1

Questo download è ciò che è necessario installare sul server per aggiungere il file Microsoft.Data.XXX 5.0.0.0 mancante: http://www.microsoft.com/en-us/download/confirmation.aspx?id=29306 – DCastenholz

+0

Ore di risoluzione di questo problema. L'installazione di WcfDataServices (scaricata dal collegamento fornito da DCastenholz) era la soluzione al mio particolare problema. –

2

Ho avuto lo stesso problema. Vai alla tua applicazione su IIS, quindi fai doppio clic su Autenticazione. Seleziona Autenticazione di Windows e disabilitala.

+0

Grazie per la risposta, ma come detto in precedenza, solo l'autenticazione anonima sia attivata per questo sito in IIS. –

+0

Se l'Autenticazione anonima è stata disabilitata intenzionalmente, controllare la risposta in base al rapporto Facio. – DCastenholz

4

Se si verifica questo problema dopo aver installato Visual Studio 2013 o aver installato una versione di .NET con OData più recente della 5.0.0.0 nella casella di sviluppo, il problema si verifica perché sono state installate nuove versioni di assembly OData e il progetto LightSwitch Server ora sta usando questi (che sono incompatibili). È possibile risolvere il problema aggiornando il server.csproj (o vbproj) per fare riferimento alla versione precedente degli assembly OData.

Aggiungere nodi HintPath per i seguenti 5 voci di assemblaggio nel Server \ Server.CSProj

<Reference Include="Microsoft.Data.Edm"> 
    <HintPath>C:\Program Files (x86)\Microsoft WCF Data Services\5.0\bin\.NETFramework\Microsoft.Data.Edm.dll</HintPath> 
    <Private>True</Private> 
</Reference> 
<Reference Include="Microsoft.Data.OData"> 
    <HintPath>C:\Program Files (x86)\Microsoft WCF Data Services\5.0\bin\.NETFramework\Microsoft.Data.OData.dll</HintPath> 
    <Private>True</Private> 
</Reference> 
<Reference Include="Microsoft.Data.Services"> 
    <HintPath>C:\Program Files (x86)\Microsoft WCF Data Services\5.0\bin\.NETFramework\Microsoft.Data.Services.dll</HintPath> 
    <Private>True</Private> 
</Reference> 
<Reference Include="Microsoft.Data.Services.Client"> 
    <HintPath>C:\Program Files (x86)\Microsoft WCF Data Services\5.0\bin\.NETFramework\Microsoft.Data.Services.Client.dll</HintPath> 
    <Private>True</Private> 
</Reference> 
<Reference Include="System.Spatial"> 
    <HintPath>C:\Program Files (x86)\Microsoft WCF Data Services\5.0\bin\.NETFramework\System.Spatial.dll</HintPath> 
    <Private>True</Private> 
</Reference> 

Questo problema non si verifica in progetti che sono stati aggiornati per il sistema del progetto V3 (con VS 2012 Update 2) o progetti V4 (VS 2013) perché abbiamo affrontato il modo in cui questi assembly sono stati referenziati. Quindi una soluzione alternativa è fare clic con il tasto destro del mouse sul progetto e scegliere "Aggiorna progetto"

David Kidder | Senior SDET | Microsoft | LightSwitch

LightSwitch Forum Post Answer to this Question