【发布时间】:2017-04-05 16:19:45
【问题描述】:
我创建了一个带有 MVC 模板的 ASP.Net Web 应用程序(.Net Framework)并安装了 EF 6 最新的稳定版本。创建了模型和上下文类。
public class IAMContext: DbContext
{
public DbSet<Blog> Blogs { get; set; }
}
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
}
在返回视图之前将以下代码放入控制器索引方法中
using (var db = new BasicTemplates.Models.IAMContext())
{
db.Blogs.Add(new BasicTemplates.Models.Blog{ Name = "Another ` Blog " });
db.SaveChanges();
}
最后是Web.config中的连接字符串
<connectionStrings>
<add name="IAMContext"
connectionString="Data Source=***\SQL2016;Initial Catalog=IAM;Integrated Security=true;"
providerName="System.Data.SqlClient"/>
这很好用,在 IAM 数据库中创建了一个名为 Blog 的表。当我尝试在 ASP.Net Core Web Application(.Net Framework) Web API 项目中做同样的事情时,它不起作用。在这里,我在 appsettings.json 中提供了连接字符串。其余代码相同。
"ConnectionStrings": {
"IAMContext": "Server=192.168.0.3\\SQL2016;Database=IAM;Trusted_Connection=True;"
}
执行后会抛出一个错误,上面写着
与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)
谢谢
【问题讨论】:
-
在那个地址找不到数据库。尝试将 web.config 中的数据源替换为 appsettings 中地址中的服务器,看看是否出现相同的错误。
-
您是否尝试在连接字符串或特定用户名和密码中提供
Integrated Security=true? -
不能同时提供数据库地址和设置 Integrated Security=true。
标签: c# asp.net-mvc entity-framework asp.net-web-api asp.net-core-webapi