“初始化数据库失败。”

Posted

技术标签:

【中文标题】“初始化数据库失败。”【英文标题】:"Failed to initialize database." 【发布时间】:2012-01-12 20:01:46 【问题描述】:

情况 我已经在 Win2k8 下设置了新的 IIS 7.5 服务器。我已将应用程序从共享主机移至此服务器。

问题 我收到此错误:

Failed to initialize database.

痕迹:

[SystemException: Failed to initialize database.]
   SyneoERPWeb.MvcApplication.SetupDatabase() in C:\Users\a\Desktop\src\branches\1.1\SyneoERPWeb\Global.asax.cs:194
   SyneoERPWeb.MvcApplication.Application_Start() in C:\Users\a\Desktop\src\branches\1.1\SyneoERPWeb\Global.asax.cs:136

[HttpException (0x80004005): Failed to initialize database.]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +9160125
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +131
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +194
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +339
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +253

[HttpException (0x80004005): Failed to initialize database.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9079228
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +97
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +256

我用谷歌搜索并尝试过的:

    向 Windows\Temp 授予对 IIS_IUSER 的完全访问权限 更改 AppPoll 作为网络服务、本地服务、本地系统运行 每个 ISS 设置都可能导致(在我看来)这个问题。

我已经尝试过远程 SQL Server (IP 212.122l...) - 它以前与我们的应用程序一起工作

我已经在同一子网(IP 192.168...)中的虚拟机上使用我新安装的 SQL Server 进行了尝试。

两台机器都在响应 ping,但都无法使用该应用程序。我也可以通过 MSSQL Management Studio 连接两者。

所以我的猜测是问题出在应用服务器上。我认为它发生在连接请求之前。这更像是 IIS 中缺少一些驱动程序。这可能吗?

我正在使用:NHibernate、EntyFramewok。

【问题讨论】:

你能告诉我们第一个错误引用的代码吗?当你得到异常时,你想做什么? SQL Server 服务是否正在运行? 你是如何建立这个数据库的?你在使用实体框架吗? 请不要在您的问题前加上“Win2k ASP.NET MVC MSSQL”之类的前缀。这就是标签的用途。 您使用的 sql 用户是否在 Management Studio 中正确连接到数据库?如果可行;运行探查器并查看来自该站点的连接是否正在发生。如果它没有检查连接性。如果这没有发生,请检查数据库中用户对正在运行的任务的权限 - 分析调用并以同一用户身份在数据库中运行它们。 您的连接字符串是否正确? IE 可以使用指定的用户名和密码连接到 SQL。如果它使用集成安全,您的机器帐户是否有权访问 SQL 【参考方案1】:

查看您的 SQL 错误日志和 Windows 应用程序日志。应该为你指明一个方向。

我相信它更多是在数据库方面,而不是您的应用程序。

在 SQL 错误日志中,您将找到所有已启动的数据库以及未启动的数据库。那里应该有关于为什么该数据库无法启动的附加信息。

【讨论】:

以上是关于“初始化数据库失败。”的主要内容,如果未能解决你的问题,请参考以下文章

RedisRedis 数据库操作 ② ( 数据库操作 | 切换数据库 | 查询当前数据库键个数 | 清空当前数据库 | 清空所有数据库 )

何为数据库?

数据库类型——系统数据库/用户数据库

关系型数据库与文档型数据库的差别?

数据库数据库管理系统数据库系统

mysql数据库的基本操作:创建数据库查看数据库修改数据库删除数据库