asp.net与数据库连接出错的问题
发布网友
发布时间:2022-04-09 12:20
我来回答
共3个回答
懂视网
时间:2022-04-09 16:42
当这些执行超慢的请求执行完成后(只是超慢,但没有出现500错误),一切就恢复正常,上面的错误日志也不再出现。
更奇怪的是这个问题只在Linux服务器上出现,在Windows服务器上不会出现。
在园子里看到“.NET Core中ADO.NET SqlClient的使用与常见问题”博文后,我们怀疑可能是SQL Server数据库服务器没有安装SP3(我们用的是阿里云RDS)。
这个问题,表象上体现的是一个连接超时的错误:
Unhandled Exception: 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: TCP Provider, error: 35 - An internal exception was caught) ---> System.AggregateException: One or more errors occurred. (No such device or address) ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: No such device or address
但是这个错误却是因为SQL Server的版本问题造成的,.NET Core中的SqlClient能支持的SQL Server最小版本为 SQL Server 2008 R2 SP3,如果你的数据库小于这个版本,就会出现这个异常。
官方的Issues在此:https://github.com/dotnet/corefx/issues/9719
今天晚上突然想到,会不会是数据库连接字符串写法的问题,换一种写法试试。于是将connection string由
"Data Source=server-name;initial Catalog=database-name;user=username;password=password"
改为
"Server=server-name;Database=database-name;user=username;password=password"
之后,问题就神奇地解决了!
.NET跨平台之旅:数据库连接字符串写法引发的问题
标签:not options dso exception https while handle 速度 blog
热心网友
时间:2022-04-09 13:50
VS只自带了数据库引擎,没有带管理器,要自己到微软网站下载Sql Server Management Studio Express.然后按下面的步骤做。
1.配置SQLServer外围应用服务器,开启SQL2005远程连接功能:
操作方式如下,点击“配置工具”->“SQLServer外围应用配置器”,然后在打开的窗口中选择“服务和连接的外围应用配置器”->然后选择Database Engine节点下的 “远程连接”,选择“本地连接和远程连接”,同时选择“同时使用TCP/IP和named pipes”,确定后然后需要重新启动数据库服务就可以了。
2.把登陆设置改为SQLServer 和 Windows 身份验证模式,具体设置如下:
打开SQLServer Management Studio管理器,点击服务器上面右键然后查看属性,在安全性选项里面对服务身份验证选择“SQLServer 和 Windows 身份验证模式”。
3.修改SQLServer sa的密码,体设置如下:
在SQLServer Management Studio管理器中,展开服务器上的“安全性”->登陆名->在sa帐号上点右键属性,这样在“常规”的选择页中更改sa登陆帐号的密码。注意SQLServer2005中,不允许密码设置简单,否则会通不过。然后在选择页的“状态”的登录修改为启用。
4.数据库连接字符串:
数据库连接字符串有很多种,如:
Data Server=.\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=sapassSql
Data Server=服务器名\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password= sapassSql
Data Server=localhost\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password= sapassSql
Data Server=.;Initial Catalog=Northwind;User ID=sa;Password= sapassSql
Data Server=服务器名;Initial Catalog=Northwind;User ID=sa;Password= sapassSql
具体的选择是和SQLServer2005的版本有关系,如果是SQLServer 2005 Express版本,则必须要有“\SQLEXPRESS”,因此如果字符串是定义为一个变量的时候应该写成Server=. \\SQLEXPRESS。
5.在.net2.0 Framework中注册SQLServer数据库:
找到.net2.0 Framework的安装路径,一般安装在 “C:\Windows\Microsoft.NET\Framework\v2.0.50727”目录下,然后在DOS中在指定目录下运行“ASPNET_REGSQL”指令,就会出现ASP.NETSQLServer安装向导,点击“下一步”,然后选择“为应用程序服务配置SQLServer”,然后直接点击下一步,就会完成SQLServer注册界面。我们就会看到NorthWind数据库下面多了几张表。
6.设置web.config文件:
在应用程序中的web.config文件添加如下数据库连接的配置:
程序代码:
<connectionStrings>
<add name="ConnectionSqlServer" connectionString="Data Source=.\SQL2005;Initial Catalog=Test2008;User ID=sa;PWD=sasasasa" providerName="System.Data.SqlClient"/>
</connectionStrings> 这样我们便在Visual Studio 2005中可以轻松的调用SQLServer的数据连接了。
现在我们来对上面所做的步骤来测试数据的连接,我们打开Visual Studio 2005,在视图的“服务器资源管理器”来添加SQLServer 2005的连接,通过输入服务器名称和对应的SQLServer身份验证的sa用户名密码后,选取对应的数据库,然后点击“测试连接”,就会成功的连接到数据库了。
如果sa无法登录,检查sa的状态属性中,是否启用了登录
热心网友
时间:2022-04-09 15:08
打开服务器资源管理器,连接sql,如果连接成功,点高级,里面就有连接字符串