2012-07-17 1 views
6

Je suis en train de jouer avec la nouvelle fonctionnalité de sites Web sur Azure et d'essayer de faire fonctionner un site MVC avec RavenDB en mode intégré. Tout fonctionne très bien localement, mais l'exploitation du site déployé dans d'azur je reçois cette erreur:RavenDb sur les sites Web Azure - Accès refusé

System.Net.NetworkInformation.NetworkInformationException: Accès refusé

Cela se produit lorsque je crée l'instance db dans global.asax:

Store = EmbeddableDocumentStore { ConnectionStringName = "RavenDb" }; 

Ma chaîne de connexion est:

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

Merci!

+0

Quelle est la trace de la pile? –

Répondre

12

Lorsqu'un port n'est pas spécifié pour RavenDB il va sortir et essayer de trouver son propre, il le fait en appelant IPGlobalProperties.GetActiveTcpListeners().

RavenDb | PortUtil.cs

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

Appel GetActiveTcpListeners() stagiaire appelle la fonction Win32 GetTcpTable() qui tente d'énumérer toutes les combinaisons possibles de port sur l'hôte. Pour des raisons évidentes, il ne serait pas judicieux d'autoriser les utilisateurs à effectuer l'analyse des ports dans les sites Web Windows Azure. Ce qui signifie que l'opération GetTcpTable échoue et quand quelque chose échoue dans le monde du développement, nous lançons une exception.

Dans ce cas particulier, l'exception est une NetworkInformationException qui est élevé font les autorisations de sécurité pour autant négliger le appel à GetTcpTable. C'est pourquoi il en résulte un message Accès refusé.

tl; dr

Ajouter un port par défaut à votre web.config appsettings section:

<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 vous autorise-t-il à utiliser un port? Y a-t-il des trucs que nous devrions connaître, avant de le faire? –

+2

Je viens de choisir un port au hasard et cela fonctionne un régal cheers! –

+0

Tous les ports Windows standard s'appliquent ici, il n'y a pas de ports réservés supplémentaires dans les sites Web Windows Azure. –

Questions connexes