2015-12-23 3 views
1

Le scénario:Azure WebApp pas en mesure de communiquer avec Azure Database websql

WebApp (Pas WebSite ni WebService) sur Azure en utilisant WebAPI ne parvient pas à se connecter à sa base de données Azure. Il n'y a pas d'IP WebApp à ouvrir dans le pare-feu de la base de données bien que j'ai ouvert (temporairement) 0.0.0.0 - 255.255.255.255 qui n'a pas aidé. Nous le message d'erreur générique suivant:

"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"

Exécution de l'application Web, il se connecte localement à la fin de la base de données Azure.

WebApp se connecte à la base de données via EF6. Donc, nous savons que la chaîne de connexion fonctionne, nous savons que la base de données est accessible et que WebAPI fonctionne ... elle échoue uniquement lorsque la WebApp est placée sur Azure.

Comment pouvons-nous résoudre ce problème?

+0

Avez-vous vérifié que la chaîne de connexion que vous voyez dans la palette Paramètres de l'application du portail correspond à celle de la chaîne de connexion que vous utilisez localement? Ce serait mon premier pari. –

+0

Les paramètres de connexion sont corrects - nous avons vérifié. –

+0

Il ne s'agit probablement pas de l'application Web elle-même. Ce sera probablement un problème de configuration. Il peut être utile de consigner la chaîne de connexion, où vous la transmettez à EF, pour vérifier que le code obtient la bonne chaîne de connexion à partir des paramètres de l'application. En outre, vous pouvez déboguer à distance via Visual Studio. Il faudra probablement déboguer de votre part, c'est une erreur assez générique que vous obtenez. :( –

Répondre

0

Ok, la solution est un peu plus complexe qu'elle ne devrait l'être. Vous ne pouvez pas obtenir une application Web pour communiquer avec une base de données WebSQL sans fudging sérieux. Toutefois, la solution correcte mais plus coûteuse est la suivante:

  1. Créer une machine virtuelle de base de données Ms SQL.
  2. Créer une machine virtuelle MS Windows pour l'API
  3. Créer une vNetwork et placer les deux machines virtuelles sur le réseau
  4. Configurer l'API pour utiliser l'adresse IP interne du réseau qui appartient à la Database VM

Voila.

+0

lors de la publication, vous pouvez générer une nouvelle base de données SQL pour une application Web. Est-ce que ce n'est pas une option pour vous? –

+0

Nous avons essayé mais n'avons pas pu obtenir notre API pour se connecter à la base de données WebSQL. –