Я попытался подключиться к моей базе данных SQL, размещенной на Plesk, с помощью InterServer с использованием C # ASP.NET MVC.Несмотря на многочисленные усилия, он никогда не хочет подключиться.Что я делаю не так?
Я несколько раз пытался изменить строку подключения.Служба поддержки Plesk и InterServer просит меня развернуть мой код и получить доступ к базе данных через localhost.В связи с этим я попробовал следующие строки подключения:
"SERVER=localhost;DATABASE=databasename;UID=username;PASSWORD=password;"
"SERVER=localhost:3306;DATABASE=databasename;UID=username;PASSWORD=password;"
"SERVER=localhost;PORT=3306;DATABASE=databasename;UID=username;PASSWORD=password;"
"SERVER=(Local);DATABASE=databasename;UID=username;PASSWORD=password;"
Я попытался заменить «Сервер» на «Источник данных», среди других изменений ключевых слов.Я также попытался установить для Trusted_Connection значение true и false, а для Integrated Security - true и false.Кажется, когда я пытаюсь установить для них значение true, приложение пытается войти в систему, используя мое имя пользователя Plesk, а не идентификатор пользователя, указанный в строке подключения.Этот пользователь не связан с базой данных, и я не могу связать ее с панелью управления Plesk, насколько мне известно.
Я также попытался использовать строку подключения по умолчанию на панели управления Plesk наряду с несколькими изменениями вуказанные строки подключения, одна из которых даже предоставлена поддержкой InterServer, поскольку они подозревают ошибку в моих строках подключения.Вот эти строки:
"data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
"Data Source=(IPAddressWasHere)\MSSQLSERVER2017;Initial Catalog=nlstatic;Persist Security Info=True;User ID=username;Password=password"
"Data Source=.\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\db.mdf;Initial Catalog=Portal.Web;Integrated Security=True"
"Data Source=.\SQLExpress;Initial Catalog=localhost;Integrated Security=True"
Я также пытался изменить имя proverName с System.Data.SqlClient на MySql.Data.SqlClient, но, похоже, это не изменило сообщение об ошибке.Лично я подозреваю, что эта проблема связана не с настройкой строки подключения, а с настройкой базы данных MySQL или ее настроек.
Несмотря на попытки обратиться за помощью в службу поддержки InterServerв связи с этим они отказываются разобраться в этом вопросе.Вместо этого они однажды попросили меня «правильно настроить мой VPS» (у меня с ними вообще нет VPS) и попытались убедить меня, что я пытаюсь подключиться через ODBC, когда я четко заявил, что это через строки подключения.
В случае, если это уместно, вот мой код C # о том, как я использую строку подключения, хотя я не чувствую, что это является причиной лично:
public List<string> GetEffectByID(int id)
{
List<string> results = new List<string>();
SqlConnection conn;
string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
conn = new SqlConnection(connectionString);
try
{
using (SqlCommand command = new SqlCommand("getFxById", conn) { CommandType = CommandType.StoredProcedure })
{
conn.Open();
using (SqlDataReader dr = command.ExecuteReader())
{
while (dr.Read())
{
results.Add(dr["myColumn"].ToString());
}
}
conn.Close();
return results;
}
} catch(Exception e)
{
if(conn.State == ConnectionState.Open) conn.Close();
return new List<string>() { e.ToString() };
}
}
Эта хранимая процедура определенно существует вмоя база данных, и она работает в phpMyAdmin
Есть ли что-то, что я пропустил на протяжении всего этого процесса?Я ожидаю, что он сможет подключиться и запустить хранимую процедуру, когда мой View вызывает функцию.Несмотря на это, используя методы, предоставленные Plesk / InterServer, он утверждает, что сервер не был найден / недоступен.Когда я пытаюсь использовать созданные мной строки подключения (без использования Integrated Security), вместо этого выдается следующее сообщение об ошибке:
System.Data.SqlClient.SqlException (0x80131904): Ошибка входа для пользователя 'Shizuku'.на System.Data.SqlClient.SqlInternalConnectionTds..ctor (идентичность DbConnectionPoolIdentity, SqlConnectionString connectionOptions, SqlCredential учетными данными, объект providerInfo, Строка новый_пароль, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool бассейн, String, Boolean, маркер доступа applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager) при System.Data.SqlClient.SqlConnectionFactory.CreateConnection (варианты DbConnectionOptions, DbConnectionPoolKey poolKey, объект poolGroupProviderInfo, DbConnectionPool бассейн, DbConnection owningConnection, DbConnectionOptions userOptions) в System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (DbConnectionPool бассейн, DbConnection owningObject, варианты DbConnectionOptions,DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) в System.Data.ProviderBase.DbConnectionPool.CreateObject (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) при System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) в System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, булевой allowCreate, булевой onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal & connection) в System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
1 повторная попытка, DbConnectionOptions userOptions, DbConnectionOptions userOptions, Внутренняя взаимосвязь внутрисетевого соединения., DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1 повтор, DbConnectionOptions userOptions) в System.Data.SqlClient.SqlConnection.TryOpenInner (TaskCompletionSource 1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
1 повтор) в System.Data.SqlClient.SqlConnection.Open () в (код файла был здесь) ClientConnectionId: 953f6859-a48b-4f58-a0b8-bef0702911a3 Номер ошибки: 18456, состояние: 1, класс: 14
Мне кажется, что эта ошибка означает, что я сейчас ближе к решению проблемы, но я не совсем уверен.Есть ли что-то, что я не пробовал или какая-то ошибка, которую я просто пропустил?