2017-09-26 5 views
1

J'ai un test de mon webapi sur la machine locale et ça marche mais sur azur ça ne marche pas, car azur y at-il quelque chose de plus à faire?ProviderName = Npgsql ne fonctionne pas sur Azure

J'essaie ceci:

public Context() : base("name=DefaultConnectionString") 
{ 
    Database.SetInitializer<Context>(null); 
} 

où mon connectionString est:

<add name="DefaultConnectionString" connectionString="host=HOST;SSL Mode=Require;Trust Server Certificate=true;User ID=USER;Password=PASSWORD;Port=5432;Database=DB;" providerName="Npgsql" /> 

Et j'essaie de définir le nom du fournisseur par le code comme:

var providerName = "Npgsql"; 
var conn = DbProviderFactories.GetFactory(providerName).CreateConnection(); 
      conn.ConnectionString = $"Host={host}; " + $"Port={port}; " + 
       $"User Id={userName};" + $"Password={password};" + $"Database={databaseName}; SSL Mode=Require;Trust Server Certificate=true;"; 

      return conn; 

Mon fournisseur:

<entityFramework> 
    <providers> 
     <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" /> 
    </providers> 
    <defaultConnectionFactory type="Npgsql.NpgsqlConnectionFactory, Npgsql" /> 
    </entityFramework> 

Répondre

0

J'ai trouvé le problème, Mon ip sur azure ne fonctionne pas, donc un changement mon ip pour start:0.0.0.0 et end:255.255.255.255, et ça marche ... maintenant je suis à la recherche d'une meilleure solution