共有アカウントとしてホストされている 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 は共有サーバーであるため、「Force Protocol Encryption」に設定する必要があります。
彼らは証明書をインポートしたり、変更を加えたりすることはできず、そのために私が何もすることを許可しません
別の解決策はありますか?これは私のコードに問題がありますか? 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>
Web.config
<?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>