c# - 在远程服务器上部署站点后获取 System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf?
问题描述
我是 C# 和 .NET 的新手,我在本地计算机上开发了 C# MVC3(使用实体框架)网站并将站点发布到远程服务器。
2018-07-26 10:38:10,103 [6] INFO MySite.Controllers.homeController [(null)] - Inside homecontroller Index ()
2018-07-26 10:38:18,007 [10] INFO MySite.Controllers.homeController [(null)] - Inside homecontroller Index ()
2018-07-26 10:38:29,742 [8] INFO MySite.Controllers.homeController [(null)] - Inside homecontroller Login Post ()
2018-07-26 10:38:32,148 [8] ERROR MySite.Controllers.homeController [(null)] - Exception inside Login () : at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
at MySite.Controllers.homeController.Login(FormCollection form) in C:\Users\DevDesk\Documents\Visual Studio 2010\Projects\Project1\MySite\Controllers\homeController.cs:line 115
2018-07-26 10:38:32,231 [5] INFO MySite.Controllers.homeController [(null)] - Inside homecontroller Index ()
这是我的连接字符串:
// Local Machine Connection String
<add name="UserProfileDBEntities"
connectionString="metadata=res://*/Models.UserProfileModel.csdl|res://*/Models.UserProfileModel.ssdl|res://*/Models.UserProfileModel.msl;
provider=System.Data.SqlClient;
provider connection string="
Data Source=LAPTOP-H0PPTKKU;
Initial Catalog=test_db;
User ID=dev_user;
Password=dev_user;
MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
// Remote Server Connection String
<add name="UserProfileDBEntities"
connectionString="metadata=res://*/Models.UserProfileModel.csdl|res://*/Models.UserProfileModel.ssdl|res://*/Models.UserProfileModel.msl;
provider=System.Data.SqlClient;
provider connection string="
Data Source=DESKTOP-MP9NGB9;
Initial Catalog=prod_db;
User ID=prod_user;
Password=prod_user;
MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
现在我得到以下错误:
2018-07-26 10:58:32,176 [20] INFO MySite.Controllers.homeController [(null)] - Inside homecontroller Index ()
2018-07-26 10:58:59,757 [20] INFO MySite.Controllers.UserController [(null)] - Inside UserController list()
2018-07-26 10:58:59,766 [23] INFO MySite.Controllers.homeController [(null)] - Inside homecontroller Index ()
2018-07-26 10:59:08,195 [23] INFO MySite.Controllers.homeController [(null)] - Inside homecontroller Login Post ()
2018-07-26 10:59:22,986 [23] ERROR MySite.Controllers.homeController [(null)] - Exception inside Login () : at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
at System.Data.EntityClient.EntityConnection.Open()
at System.Data.Objects.ObjectContext.EnsureConnection()
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
设置有什么问题,或者我需要对 app.config 文件进行任何更改..?
解决方案
推荐阅读
- php - 在 laravel 中更改 foreach 内的属性
- java - 我们如何将字符串转换为在 JAVA 中获取值的工作变量?
- azure-devops - VSTS 扩展 - 令牌认证错误
- java - 给出答案后如何重置程序
- java - 从控制台输出到 JTextArea
- sql-server - SQL Server:基于变量在 SELECT 语句中动态更改 SQL Server
- linux-kernel - 在设备树中设置 GPIO bank 编号
- java - 用流替换 for 循环以添加正确和错误拼写的单词
- json - 如何获取 Kubernetes 对象的 OpenAPI 规范
- php - 在 symfony 2.8 上部署项目时出错