前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IIS出现"System.Data.SqlClient.SqlException"时的解决办法

IIS出现"System.Data.SqlClient.SqlException"时的解决办法

作者头像
乐百川
发布2022-05-05 19:18:02
1.1K0
发布2022-05-05 19:18:02
举报

问题出现

最近正在学习ASP.NET Core MVC,顺便弄了一个自己的个人小网站。基本上是开发一点,部署一点。不过,当我添加了Entity Framework之后,部署到IIS上却打不开了。页面提示一个500服务器错误就什么也没了。

:( Oops. 500 Internal Server Error

初步查询

我在VS中调试的时候明明好好的,于是我翻看了一下ASP.NET Core关于在IIS上部署的文档,上面提供了一个简单的检测错误来源的方法:

1.如果在你的发布文件夹内使用dotnet yourapp.dll等命令运行程序可以正常运行的话,说明问题更可能出在IIS和Kestrel服务器的通信之间,你的应用程序本身应该是没问题的。2.如果通过IIS可以正常浏览静态内容(比如图片,CSS或者JS),但是浏览页面却出现错误的话,说明问题更可能出现在你的应用程序上。

我照着使用dotnet myapp.dll命令测试了一下,发现我的程序没问题,那么问题看来就是出在IIS上面了。但是由于IIS只给出了一个500错误,没有更详细的日志,所以我暂时没有办法。

检查日志

于是我到了著名的程序员问答社区StackOverFlow上面提了个问题。其中一位大侠给了我思路。那就是打开日志追踪。找到发布文件夹中的Web.config文件,打开日志追踪stdoutLogEnabled="true",由于IIS本身不会自动创建日志文件夹,所以还需要根据stdoutLogFile=".\logs\stdout"来创建logs文件夹,来让IIS将日志记录到这里。修改完成之后需要在IIS中重启我的程序,然后再浏览器中访问,果然出现了迫切需要的程序日志。

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. 无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。 )

有了日志,事情就好办多了。在这里我不得不插一句,在这个时候VS提醒我ASP.NET Core插件更新了,于是我就点了更新。不过更新失败了两次,我又看了一下更新日志发现是网络问题。于是又挂上了ss才成功更新。更新之后呢,我突然发现再次发布之后,IIS居然直接提示出了我历经千辛万苦才找到的错误信息!在此我只能说以后再遇到更新,我就果断更新,没有任何犹豫了。

问题解决

刚才说了一些题外话。根据错误异常信息来看,这是SqlServer权限不够造成的。联想我开发时候正常,部署到IIS上却不正常了。说明还是IIS有哪里权限不够。上网在查了一下果然发现是这个原因。解决办法也很简单:打开IIS中的应用程序池,找到我的程序实用的应用程序池,打开高级设置,找到进程模型->标识,然后修改为LocalSystem即可。

修改之后,我迫不及待的查看我的网站,这次果然正常了。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题出现
  • 初步查询
  • 检查日志
  • 问题解决
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档