Pregunta ¿Cómo configuro una cadena de conexión ADO.NET Entity Framework a través del Portal de administración de Windows Azure (Vista previa)?


En el Portal de administración de Windows Azure (Vista previa) puede cambiar las opciones de configuración para los sitios web (consulte http://www.windowsazure.com/en-us/manage/services/web-sites/how-to-configure-websites/#howtochangeconfig)

Actualmente configuro la cadena de conexión para mi conexión ADO.NET Entity Framework a través de Web.Release.Config, pero quiero configurarlo a través del Portal de administración, pero no importa lo que use, siempre termino con el siguiente error:

La conexión con nombre especificado no se encuentra en el   configuración, no destinada a ser utilizada con el proveedor de EntityClient,   o no es válido

Funciona para cadenas de conexión regulares, es decir, sin la clave de metadatos que define los metadatos y la información de asignación (csdl, ssdl, msl).

Esto es lo que hago:

voy a https://manage.windowsazure.com/#Workspaces/WebsiteExtension/Website/[MY-STAGING-SITE-NAME]/configure

En "cadenas de conexión", tengo una clave llamada "ApplicationServices" que se ve así:

Server = tcp: xxxxx.database.windows.net, 1433; Database = xxxxx; User   ID = xxxxx @ xxxxx; Password = xxxxx; Trusted_Connection = False; Encrypt = True; Connection   Tiempo de espera = 30;

Este funciona

Tengo otra clave para la conexión de Entity Framework. Vamos a llamar a ese FooBarContext. Se parece a esto:

metadata = res: ///Models.FooBarContext.csdl|res:///Models.FooBarContext.ssdl|res://*/Models.FooBarContext.msl;provider=System.Data.SqlClient;provider   conexión   string = "Servidor = tcp: fooserver.database.windows.net, 1433; Base de datos = foobar; Usuario   ID = myname @ fooserver; Password = xxxxxxxxxx; Trusted_Connection = False; Encrypt = True; Conexión   Tiempo de espera = 30; "

Este causa el error descrito arriba. Se copia de la trabajando valor en Web.Release.Config, con el & quot; reemplazado por un ".

He intentado otras variaciones: con el & quot; intacto, con metadatos añadidos al final, pero fue en vano. He reproducido el problema con un segundo sitio web.


26
2018-01-22 13:31


origen


Respuestas:


La solución para mi problema fue seleccionar "Personalizado" en lugar de "SQL Azure" desde el selector "SQL Azure / SQL Server / MySQL / Custom" para la cadena de conexión de Entity Framework, aunque la base de datos se ejecute en SQL Azure.


44
2018-01-25 14:59



enter image description here

Reemplazar

"

con

"

En la cadena de conexión.


11
2018-06-26 01:09



No solo tuve que usar comillas dobles (o comillas simples) en lugar de " (y seleccione Personalizado para el tipo) pero también tuve que asegurarme de que había un valor ficticio en mi configuración de transformación. Estaba reemplazando todo el nodo connectionStrings, pero decidí conservarlo y agregar esto:

<add xdt:Transform="Replace" xdt:Locator="Match(name)" name="FooBarEntities" connectionString="temp" providerName="System.Data.EntityClient" />

Sin esto, recibí el siguiente error:

The connection string 'FooBarEntities' in the application's configuration file does not contain the required providerName attribute.


3
2018-03-13 19:48



Además de las respuestas anteriores, hay dos cosas muy importantes:

  1. Debes eliminar "name =" de "name = connectionString" en constructor:

MyEntities públicas (string connectionString)                   : base ($ "name = {connectionString}")               {               }

  1. Debe dejar "duplicado" de cadena de conexión en app.config, pero reemplace la cadena de conexión con texto falso, cadena de conexión correcta se cargará desde Azure. Eso es necesario para la parte providerName. Por favor lee: https://mohitgoyal.co/2017/07/05/update-connection-string-for-entity-framework-in-azure-web-app-settings/comment-page-1/

0
2018-01-18 15:25



Yo tuve el mismo problema. Lo resolví, poniendo en la web. Configuré esta conexión:

<add name="eManagerTurModelConnection" connectionString="metadata=res://*/ORM.eManagerFinanceModel.csdl|res://*/ORM.eManagerFinanceModel.ssdl|res://*/ORM.eManagerFinanceModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=<server>.database.windows.net;Initial Catalog=eManagerTur;Integrated Security=False;User ID=<user>;Password=<Password>;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

Y después de eliminar la conexión de mi sitio web, funcionó, porque no obtenía la cadena de conexión que agregué en mi web.config.

Inglés malo ... =)


-1
2017-11-07 03:56



Preguntas populares