我对使用Entity Framework Web API的项目的Web.config文件中的连接字符串感到困惑。我尝试了很多变种,但没有一个能帮助我。目前连接字符串是
<connectionStrings>
<add name="DefaultConnection" connectionString="Server=.\SQLEXPRESS;Database=MyProject;User Id=John;Password=duck;" providerName="System.Data.SqlClient" />
</connectionStrings>
我可以使用John
作为用户名和duck
作为密码访问SQL Server Management Studio 2012中的MyProject数据库(甚至是远程数据库)。
项目由与SQL服务器在同一台计算机上的IIS服务器运行,SQL Server的实例名称为SQLEXPRESS
。
我的网页显示在localhost上,但只要请求来自sql数据库的某些数据,控制器就会回复500 Interal server error
。看起来没有与数据库的连接。
为了在IIS和SQL服务器之间建立连接,我需要添加或更改什么,或者如何更好地找到问题的原因?
答案 0 :(得分:2)
使用Event Viewer获取有关实际500错误的更多信息。
答案 1 :(得分:2)
This教程如何在IIS 7.0上为ASP.net网站设置SQL Server 2008让我接近解决方案。
基本上,你需要做的是
更改连接字符串的名称有助于我最终建立连接。
<connectionStrings>
<add name="MyProjectContext" connectionString="Server=.\SQLEXPRESS;Database=MyProject;User Id=John;Password=duck;" providerName="System.Data.SqlClient" />
</connectionStrings>
上下文模型需要此名称。
public class MyProjectContext : DbContext
{
public MyProjectContext() : base("name=MyProjectContext")
{
}
public DbSet<Model1> Model1 { get; set; }
public DbSet<Model2> Model2 { get; set; }
}
答案 2 :(得分:1)
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyProject;User ID=John;Password=duck" providerName="System.Data.SqlClient" />
</connectionStrings>
请尝试以上连接语法。
答案 3 :(得分:1)
基本上只需使用Integrated Security = False修改连接字符串,如:
它会起作用......
答案 4 :(得分:0)
我的回答与连接字符串无关,但是,如果您有一个托管在 IIS 上的应用程序并且它尝试连接到 SQL Server 并且您收到“500 Interal server”错误(尽管连接字符串正确),您仍然需要同时配置 IIS 和 SQL Server。
有一篇名为“配置 IIS、ASP.NET 和 SQL Server”的宝贵文章。 我按照那里描述的步骤操作,我的应用程序现在可以与我的 SQL 数据库正常通信:
https://www.codeproject.com/Articles/674930/Configuring-IIS-ASP-NET-and-SQL-Server