私は、c# と monotouch を使用して iphone プロジェクトに取り組んでいます。SQL Azure データベースを使用する必要があります。私の問題は、モノタッチを使用して接続できないように見えることです。Visual Studio 2012 を使用して、Windows 8 マシン上に構築されたネイティブ コンソール アプリケーションで以下のコードを正常に動作させることができます。私が得るエラーは次のとおりです。
System.NotImplementedException: クライアントとサーバー間で送信されるデータの SSL 暗号化が実装されていません。
少しグーグルで調べたところ、ここで私の正確な問題を説明していると思われるバグレポートが見つかりました。2年近く経っていることに気付いたので、これがまだ実装されていないかどうかはわかりません。
そこで、StringBuilder.Encrypt = true; の値を変更してみました。偽に。しかし、それでもクラッシュし、次のエラーが表示されます。
Mono.Data.Tds.Protocol.TdsInternalException: サーバーが接続を閉じました。---> System.IO.IOException: 接続が失われました
いずれの場合も、conn.Open(); のときにアプリがクラッシュします。と呼ばれます。
私はかなり行き詰まっており、SQL Azure を使用するしかありません。そのため、誰かが私の問題の解決策や回避策を提案できる場合は、大いに感謝します. 前もって感謝します!
string userName = "<username>@<myservername>";
string password = "<password>";
string dataSource = "<myservername>.database.windows.net";
string databaseName = "<dbname>";
SqlConnectionStringBuilder connStringBuilder;
connStringBuilder = new SqlConnectionStringBuilder();
connStringBuilder.DataSource = dataSource;
connStringBuilder.InitialCatalog = databaseName;
connStringBuilder.Encrypt = true;
connStringBuilder.TrustServerCertificate = false;
connStringBuilder.UserID = userName;
connStringBuilder.Password = password;
using (SqlConnection conn = new SqlConnection (connStringBuilder.ToString())) {
conn.Open();
using (IDbCommand dbcmd = conn.CreateCommand()){
string sql = "Select client_username from dbo.client;";
dbcmd.CommandText = sql;
using (IDataReader reader = dbcmd.ExecuteReader()){
while( reader.Read() ){
string username = (string) reader["client_username"];
}
}
}
}