La charge de la Chaîne de Connexion à partir du Fichier de Config dans Azure Fonctions
Dans mon Azure Fonction, je suis en utilisant une Bibliothèque qui établit une connexion à un serveur SQL server via la ConnectionString de la ConfigurationManager comme ceci:
var cs = System.Configuration.ConfigurationManager.ConnectionStrings["DbConString"].ConnectionString;
DbConnection connection = new SqlConnection(cs);
Maintenant, lorsque j'ai mis la chaîne de connexion DbConString dans le portail via les Paramètres de l'Application que tout fonctionne correctement. Mais pour le développement local, j'utilise l'azur-fonctions-cli et malheureusement je n'ai aucune idée de l'endroit où je dois placer la chaîne de connexion de l'avoir correctement chargé via le ConfigurationManager.
J'ai essayé de le placer dans le appsettings.fichier json, mais sans succès.
Edit:
Mon appsettings.json actuellement ressemble à ceci:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"AzureWebJobsDashboard": "",
"MyServiceBusReader": "Endpoint=sb://xxxx=",
"DbConStr1": "data source=(localdb)\\MSSQLLocalDB;initial catalog=MyDb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework",
"ConnectionStrings": {
"DbConStr2": "data source=(localdb)\\MS..."
}
}
}
Mais je ne suis pas en mesure d'accéder à "DbConStr1" via le ConfigurationManager.
L'ajout de "DbConStr2" à l'intérieur "ConnectionStrings" comme décrit ici conduit à une erreur de compilation. Peut-être parce que je ne suis pas à l'aide .NET de Base?
Edit2:
J'ai foiré l'imbrication des "ConnectionStrings". Il doit être sur le même niveau d'imbrication des "Valeurs":
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"AzureWebJobsDashboard": "",
"MyServiceBusReader": "Endpoint=sb://xxxx="
},
"ConnectionStrings": {
"DbConStr": "data source=(localdb)\\MS..."
}
}
application.json
fichier que vous.Non, je ne les utilisez pas .NET de Base. J'ai pensé que l'utilisation de l'application.json est juste la façon dont Azure Fonctions de travail?
En fait, il semble, au moins pour moi, de le faire tourner un .NET fonction utilise v4.6, de sorte que vous avez raison; il n'est pas encore .NET de Base.
Est-ce à dire, qu'il doit également être possible d'utiliser une application.config lieu de l'application.json?
Par votre action, vos chaînes de connexion devrait certainement être en vertu de la
ConnectionStrings
nœud. Pouvez-vous accéder à tous les paramètres? Je pourrais essayer de faire assurer que le fichier est nommé de façon appropriée appsettings.json
dans le cas où votre fonction est configurée pour rechercher le nom du fichier par la convention.
OriginalL'auteur officer | 2017-01-30
Vous devez vous connecter pour publier un commentaire.
Ajouter un fichier local.le réglage.json
Dans le Code C# utilisation:
OriginalL'auteur Israel Calderon
J'ai eu ce même problème et je suis à l'aide .net standard (par opposition à la base). J'ai ajouté mes réglages pour les Paramètres de l'Application l'article de mon Azure fonction (dans le Portail Azure):-
J'ai ensuite téléchargé un zip de la fonction:-
Inclus dans ce téléchargement est une copie locale.les paramètres.json qui comprend mes paramètres de l'application dans le bon format json. J'ai ensuite y accéder via ConfigurationManager.Appsettings["mysetting"]
OriginalL'auteur Stephen Garside
Le problème, c'est que d'une chaîne de connexion connu, par exemple, d'un
Web.config
fichier se compose de deux parties:Mais depuis le fichier de configuration utilise le format JSON, il n'était pas possible de spécifier les paramètres.
Au moment où la question a été posée, il n'était pas possible de mettre le nom du fournisseur dans la
appsetings.json
(maintenant renommélocal.settings.json
). Mais l'Azur-Fonctions-changement d'équipe présent et définir une valeur par défaut pourproviderName
àSystem.Data.SqlClient
, qui a résolu le problème.La
providerName
par défautSystem.Data.SqlClient
. Vous n'avez pas à le configurer manuellement. Il suffit d'ajouter votre chaîne de connexion X et de le lire viaConfigurationManager.ConnectionStrings["X"]
.Comment ce qui est réalisé? Le
providerName
par défautSystem.Data.SqlClient
. Vous n'avez pas à le configurer manuellement. Il suffit d'ajouter votre chaîne de connexion X et de le lire via ConfigurationManager.ConnectionStrings["X"]OriginalL'auteur officer
Vous devriez être en mesure de gérer vos paramètres de configuration avec un
appsettings.json
fichier dans votre projet de la structure. Vous pouvez prendre un coup d'oeil ici pour un exemple de la structure de dossier pour Azure Fonctions.En outre, cette lien aura quelques détails sur la façon de gérer les paramètres de configuration .NET de Base.
Il n'est pas .NET de Base encore, mais il est .NET Standard 2.0 du RTM. blogs.msdn.microsoft.com/appserviceteam/2017/08/14/... voir "Fonctions du type de projet'
OriginalL'auteur awh112