Mientras se utiliza el marco de la entidad He dividirlo a cabo su propio proyecto:Entity Framework - El proveedor subyacente falló en ConnectionString
- RivWorks.Model - Contiene modelo de entidad
- RivWorks.Controller - Utiliza la Entidad modelo y contiene las reglas biz
- RivWorks.View.Web - El sitio web
- RivWorks.View.Services - proyecto WCF
Todo en el sitio web funciona bien. Puedo llamar al controlador y recuperar un modelo válido. Cuando intento lo mismo desde el Web.Service estoy recibiendo este error:
ERROR:
The underlying provider failed on ConnectionString.
STACK TRACE:
at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
at System.Data.EntityClient.EntityConnection..ctor(String connectionString)
at System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString)
at System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName)
at RivWorks.Model.Entities.RivFeedsEntities1..ctor(String connectionString)
at RivWorks.Model.FeedStoreReadOnly..ctor(String connectionString)
at RivWorks.Controller.ProductManager.LookupProduct(String productID, String sku, String urlRef, String env, String logPath)
estoy un poco confundido en cuanto a por qué y excavar a través de los registros de errores, finalmente me di cuenta de las cadenas de conexión no se están leyendo el archivo de configuración del sitio web Por lo tanto, he añadido algo de código para atrapar y que, por ahora, no modificable los valores en igual:.
public dataObjects.NegotiateSetup LookupProduct(string productID, string sku, string urlRef, string env, string logPath)
{
string feedConnString = "";
string rivConnString = "";
log.InitializeLogFile(logPath);
dataObjects.NegotiateSetup resultSet = new dataObjects.NegotiateSetup();
try { feedConnString = AppSettings.FeedAutosEntities_connString; }
catch { feedConnString = @"metadata=res://*/Entities.FeedEntities.csdl|res://*/Entities.FeedEntities.ssdl|res://*/Entities.FeedEntities.msl;provider=System.Data.SqlClient;provider connection string='Data Source=***.***.***.***;Initial Catalog=******;Persist Security Info=True;User ID=******;Password="******";MultipleActiveResultSets=True'"; }
try { rivConnString = AppSettings.RivWorkEntities_connString; }
catch { rivConnString = @"metadata=res://*/Entities.RivEntities.csdl|res://*/Entities.RivEntities.ssdl|res://*/Entities.RivEntities.msl;provider=System.Data.SqlClient;provider connection string='Data Source=******;Initial Catalog=******_Dev;Persist Security Info=True;User ID=******;Password="******";MultipleActiveResultSets=True'"; }
try
{
using (RivFeedsEntities1 _dbFeed = new FeedStoreReadOnly(feedConnString).ReadOnlyEntities())
{
using (RivEntities _dbRiv = new RivWorksStore(rivConnString).NegotiationEntities())
{
Pero, por desgracia, todavía se me está dando el error anterior! ¿Alguna idea de por qué?
Encontré un hilo en MSDN que no fue respondido después de más de un año. Triste, muy, muy triste. http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/c5a7a766-9b02-4ae2-be60-a2605983701d?prof=required –