前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LocalDB 在 ASP.NET 程序中找不到数据库

LocalDB 在 ASP.NET 程序中找不到数据库

作者头像
Venyo
发布2018-03-15 13:22:46
2.7K0
发布2018-03-15 13:22:46
举报
文章被收录于专栏:Venyo 的专栏Venyo 的专栏

LocalDB 在 ASP.NET 程序中找不到数据库:有时候错误信息是:无法找到数据库,请确认数据库名称是否正确;而有时候会变成:Cannot open database  requested by the login. The login failed.

其实第一个错误信息有时候是身份验证的问题导致的,如果真是数据库名称没写对,而苦苦地寻找解决方案,那就真的可以去撞墙了。

我出现这个问题的情况特别诡异,而这是我第一次接触 SqlServer,对其不大了解,导致了我花了很多时间才解决了这个问题。

首先,我在本机跑的时候是完全没问题的,可是当我部署到服务器上跑就出现了找不到数据库的问题了。

数据库以及表我都是写成控制台程序,以可执行程序的形式跑的,程序跑得很顺利,可是运行 ASP.NET 程序的时候却出错了。

于是我又写了一个测试连接数据库的控制台程序,结果跑得也是很顺利。这时候就纳闷了,百度出了各种解决方案,再次吐槽:国内的很多文章都特么是一字不落抄过去的,而 StackOverflow 也有很多解决方案,试了很多种方法,结果都是在几个错误信息中来回变动。

后来,我逐渐感觉是身份验证的原因,于是到微软官网查看了一下 SqlConnection.ConnectionString 的文档,想要看看如何在连接字符串中添加用户名密码,这两个参数没找到,我却先看到了“Initial Catalog- 或 -Database”参数,于是,我就把数据库参数添加到连接字符串中。

(原本我是先连接到 LocalDB 实例,再调用 ChangeDatabase 方法切换数据库的,于是每次在这个方法都报错:找不到数据库)

很令人惊喜的是,这次的错误信息不再是过去那几个中的一个了:Cannot open database requested by the login. The login failed.

很明确的,身份验证的原因。

百度一下,链接到 StackOverflow,看到了很多个熟悉的解决方案,而且解决率还很高,但对于我来说并没有解决成功,而且也看到了类似的解决方案,吐槽:跟国内差不多,拿别人的解决方案,稍微换一下,又是原创解决方案了,呵呵哒。

对于我的问题,正确的解决方案是倒数第三个:

I had this problem and what solved it for me was to:

  • Go to the Application pools in the IIS
  • Right click on my project application pool
  • In Process Model section open Identity
  • Choose Custom account option
  • Enter your pc user name and password.

 就是到服务器中的 IIS 找到应用程序所在的应用程序池,点击右边的高级设置(他上面说是右键,额。。。不知道是哪个版本的 IIS 是酱紫操作的,我的是 IIS7),然后设置“进程模型”的“标识”属性,弹出对话框后选择自定义账户,输入你登录服务器的账号密码,OK。

在这里就不截图了,不方便,233333

问题解决后,我突然恍然大悟,为什么控制台程序能跑得很顺利,而 ASP.NET 程序却报错?因为控制台程序不需要去设置程序的身份,默认使用登录系统的账户,而 ASP.NET 是托管在 IIS 中的,有涉及到身份验证,默认值为 ApplicationPoolIdentify,不懂这是什么,可是它导致了错误,就说明这个身份肯定不行。

以上。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档