【发布时间】:2014-02-12 23:34:25
【问题描述】:
我正在使用使用 Code First 和 Fluent API 的实体框架。
在我的本地机器上开发时,数据库和表按预期创建,一切正常。
在部署到我的 Azure Web 角色时,会创建数据库,但从未创建表。如果我尝试接触 DbContext 的 HTTP 请求,请求会超时,最后我的 Web 角色只返回“服务不可用”。
模型很大,但不是特别大(在我的开发机器上创建了 43 个表)。
这里有什么问题?这是我的 Azure SQL 连接字符串,您可以在其中看到我将超时设置得很高:
<add name="MyConnectionString" connectionString="Server=tcp:myserveronazure.database.windows.net,1433;Database=MyDatabase;User ID=MyUser@myserveronazure;Password=thepassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=120;PersitSecurityInfo=true;" providerName="System.Data.SqlClient" />
编辑:在 RDP:ing 进入 Azure VM 后,我在事件日志中看到 w3wp.exe(如果我没记错的话,是 IIS 工作进程)崩溃。日志没有列出任何错误消息。
【问题讨论】:
-
您在数据库中使用迁移?你的数据库有一个 mi 迁移表?
-
我没有使用任何我知道的迁移。但是在我的开发机器上的数据库中创建了一个“__MigrationHistory”表,即使数据库是从头开始创建的。这意味着什么?
-
我知道的唯一自定义是在我的 DbContext 子类中使用 Fluent API,我将在其中覆盖 OnModelCreating 方法。
-
您的数据库中有信息还是为空?我告诉你这是因为我遇到了类似的问题,并且必须与实体框架数据库初始化程序有关。
-
禁用迁移并删除您的数据库,然后启动您的应用程序并检查您的数据库是否没有 _MigrationHistory 表。然后再试一次。
标签: entity-framework azure azure-sql-database