我有一个作为共享帐户托管的 ASP.Net 站点。我收到错误消息:
A connection was successfully established with the server, but then an error
occurred during the pre-login handshake. (provider: SSL Provider, error: 0 -
The specified data could not be decrypted.
我在网上找到的信息似乎表明问题是 SQL Server 不信任证书(SSL 证书是由威瑞信和托管服务签署的有效证书,而不是自签名的)。但是,托管服务告诉我:
SQL Server 必须设置为“强制协议加密”,因为它是共享服务器
他们无法导入证书或进行任何更改,也不允许我为此做任何事情
还有其他解决方案吗?这是我的代码有问题吗?我尝试从 bin 文件夹和 web.config 中删除我的 DLL,并创建一个直接连接到数据库的 aspx 页面,但我仍然遇到同样的错误!
有可能解决这个问题吗?是我的代码以某种方式导致了这种情况吗?
编辑:我改为在连接字符串中使用 ip 地址,它暂时重新开始工作,但现在它再次给我错误。我不确定为什么它偶尔会再次开始工作,然后突然停止工作。有人知道吗?
(代码在我本地托管的开发服务器上完美运行)
网页
<%@ Page language="c#" %>
<%@ Import namespace="System" %>
<%@ Import namespace="System.Web" %>
<%@ Import namespace="System.Data" %>
<%@ Import namespace="System.Data.SqlClient" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
try
{
//Now insert into database
SqlConnection conn = new SqlConnection( ConfigurationManager.AppSettings["ConnectionString"] );
conn.Open();
SqlCommand cmd = new SqlCommand( );
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM TestTable";
cmd.ExecuteReader();
Response.Write( "done" );
}
catch (Exception sqlEx)
{
Response.Write( sqlEx.ToString() );
}
}
</script>
网页配置
<?xml version="1.0"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
<appSettings>
<add key="ConnectionString" value="server=mydb.thehostingservice.com;user=dbUser;initial catalog=test;pwd=dbpass" ></add>
</appSettings>
</configuration>