2

共有アカウントとしてホストされている 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 証明書は、自己署名ではなく、ベリサインとホスティング サービスによって署名された有効な証明書です)。ただし、ホスティング サービスから次のように言われました。

  1. SQL Server は共有サーバーであるため、「Force Protocol Encryption」に設定する必要があります。

  2. 彼らは証明書をインポートしたり、変更を加えたりすることはできず、そのために私が何もすることを許可しません

別の解決策はありますか?これは私のコードに問題がありますか? 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>
4

2 に答える 2

1

これが恒久的な修正であるかどうかはわかりませんが、データベースの「Web」アドレスの代わりに、データベースの IP アドレスと接続文字列のポートを使用して、最終的に接続することができました。そこで、「mydb.thehostingservice.com」を「192.168.1.213,1433」に置き換えました。

この後、接続できました。

しかし、これが恒久的な解決策であることに懐疑的である理由は、この後、接続文字列で「mydb.thehostingservice.com」を使用して、ti が壊れるかどうかを確認し、それも機能するようになったことです。だから、これは将来また私を壊すかもしれません。

以前はエラーを受け取っていましたが、web.config と dll を削除して一時的に修正しましたが、今回の削除では修正されませんでした。

編集:再びエラーが表示されます。それは解決策ではありませんでした。ときどき再び機能し始め、突然機能しなくなる理由がわかりません。誰か知っていますか?

于 2013-02-06T06:28:21.190 に答える