我想在本地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
创建了一个登录名,并设置了这两个角色:public
和dbcreator
。但即使在所有这些设置之后,应用程序也无法通过IIS正常工作。
虽然我在浏览器上收到“Hello world”消息,但从未创建Test
数据库。最奇怪的是如果我在连接字符串中进行了一些恶意更改,我甚至不会收到任何编译错误,只是浏览器中的“Hello world”消息。
我做错了什么?提前谢谢!
答案 0 :(得分:0)
首次访问实体时会创建数据库 尝试这样做:
public FooA mapFooBToFooA(FooB original){
FooA result = new FooA();
result.setName(original.getName());
return result;
}
此时,如果数据库创建不起作用,您将收到错误。
如果某些内容仍不起作用,请执行后续步骤:
在连接字符串中使用。\ SQLEXPRESS因为可能会发生重音的所有内容
在SQL Server系统管理角色中分配给用户。如果它起作用,那么你就开始减少权利(或者更好的是,改变方法)。