2012-07-17 16 views
6

Sto giocando con la nuova funzione Siti Web su Azure e sto cercando di ottenere un sito MVC in esecuzione con RavenDB in modalità incorporata. Tutto funziona bene a livello locale, ma la gestione del sito schierato in azzurro ottengo questo errore:RavenDb su siti Web di Azure - Accesso negato

System.Net.NetworkInformation.NetworkInformationException: Accesso negato

Questo accade quando creo l'istanza db in global.asax:

Store = EmbeddableDocumentStore { ConnectionStringName = "RavenDb" }; 

mia stringa di connessione è:

<add name="RavenDb" connectionString="DataDir=~\App_Data\Raven" /> 

Grazie!

+0

Qual è l'analisi dello stack? –

risposta

12

Quando una porta non viene specificata per RavenDb, si spegnerà e cercherà di trovarne la propria, lo fa chiamando IPGlobalProperties.GetActiveTcpListeners().

RavenDb | PortUtil.cs

var activeTcpListeners = IPGlobalProperties 
         .GetIPGlobalProperties() 
         .GetActiveTcpListeners(); 

Calling GetActiveTcpListeners() intern chiama la funzione Win32 GetTcpTable() che tenta di enumerare tutte le possibili combinazioni di porte sull'host. Per ovvi motivi, non sarebbe un buon scenario consentire agli utenti di effettuare la scansione delle porte all'interno dei siti Web di Windows Azure. Il che significa che l'operazione GetTcpTable non riesce e quando qualcosa non funziona nel mondo dello sviluppo viene generata un'eccezione.

In questo caso particolare l'eccezione è una NetworkInformationException che sia sollevata fare per le autorizzazioni di protezione trascurando la chiamata a GetTcpTable. Questo è il motivo per cui risulta un messaggio di accesso negato.

tl; dr

aggiungere una porta di default per il tuo web.config appSettings sezione:

<appSettings> 
    <add key="Raven/Port" value="*"/> <!-- Add real tcp port # --> 
    <add key="Raven/DataDir" value="~\Data"/> 
    <add key="Raven/AnonymousAccess" value="Get" /> 
</appSettings> 
+0

Azure consente di utilizzare qualsiasi porta? Ci sono alcuni trucchi che dovremmo sapere, prima mano? –

+2

Ho appena scelto una porta a caso e funziona a meraviglia! –

+0

Qui si applicano tutte le porte Windows standard, non ci sono porte riservate aggiuntive nei siti Web di Windows Azure. –

Problemi correlati