无法通过IIS访问SQL Server

时间:2015-08-13 02:06:27

标签: sql-server asp.net-mvc entity-framework iis

我想在本地IIS 8服务器上运行我的ASP.NET MVC应用程序,但我无法访问SQL Server 2014. IIS和SQL Server都在同一主机上运行,​​我使用的是Windows 8.这是到目前为止我做了什么:

在应用程序中,我创建了一个名为Employee的模型:

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
}

我想使用Entity Framework连接到数据库,所以我创建了另一个名为EmployeeDbContext的类:

public class EmployeeDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; }
}

我只有一个Home控制器:

public string Index()
{
    EmployeeDbContext employeeDbContext = new EmployeeDbContext();
    return "Hello world";
}

我正在使用带有Windows身份验证的SQL Server 2014 Express引擎,我的计算机名称是ZSÓTÉ。以下是web.config

中的连接字符串
<add name="EmployeeDbContext" 
     connectionString="Server=ZSÓTÉ\SQLEXPRESS;Initial Catalog=Test;Integrated Security=SSPI" 
     providerName="System.Data.SqlClient" />

Global.asax我没有设置任何初始化策略,所以如果Test数据库不存在,那么应用程序应该自动创建它。

之后,我在属性窗口上设置了IIS Local Server,并为应用程序创建了一个虚拟目录。到目前为止一切正常,我可以在IIS管理器中看到该应用程序,并设置为在DefaultAppPool下运行。之后,我为IIS APPPOOL\DefaultAppPool对象设置了项目文件夹的所有权限。设置很好我可以完美地从IIS服务器访问应用程序。

最后,我在SQL Server Management Studio中为IIS APPPOOL\DefaultAppPool创建了一个登录名,并设置了这两个角色:publicdbcreator。但即使在所有这些设置之后,应用程序也无法通过IIS正常工作。

虽然我在浏览器上收到“Hello world”消息,但从未创建Test数据库。最奇怪的是如果我在连接字符串中进行了一些恶意更改,我甚至不会收到任何编译错误,只是浏览器中的“Hello world”消息。

我做错了什么?提前谢谢!

1 个答案:

答案 0 :(得分:0)

首次访问实体时会创建数据库 尝试这样做:

public FooA mapFooBToFooA(FooB original){
  FooA result = new FooA();
  result.setName(original.getName());
  return result;
}

此时,如果数据库创建不起作用,您将收到错误。

如果某些内容仍不起作用,请执行后续步骤:
在连接字符串中使用。\ SQLEXPRESS因为可能会发生重音的所有内容 在SQL Server系统管理角色中分配给用户。如果它起作用,那么你就开始减少权利(或者更好的是,改变方法)。