как решить mscorlib.dll Не удалось извлечь «MySqlPassword» из переменных среды ..?

0

Это код для шины NserviseBus. Я получил ошибку при запуске этого кода. Ошибка "mscorlib.dll Не удалось извлечь" MySqlPassword "из переменных среды", пожалуйста, помогите мне. Спасибо....

using System;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using NServiceBus;
using NServiceBus.Persistence.Sql;

class Program
{
    static async Task Main()
    {
        Console.Title = "Samples.SqlPersistence.EndpointMySql";

        #region MySqlConfig

        var endpointConfiguration = new EndpointConfiguration("Samples.SqlPersistence.EndpointMySql");

        var transport = endpointConfiguration.UseTransport<MsmqTransport>();

 transport.Transactions(TransportTransactionMode.SendsAtomicWithReceive);

        var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();

        var password = Environment.GetEnvironmentVariable("root");
        if (string.IsNullOrWhiteSpace(password))
        {
            throw new Exception("Could not extract 'MySqlPassword' from Environment variables.");
        }
        var username = Environment.GetEnvironmentVariable("root");
        if (string.IsNullOrWhiteSpace(username))
        {
            throw new Exception("Could not extract 'MySqlUserName' from Environment variables.");
        }
        var connection = $"server=localhost;user= 
        {username};database=sqlpersistencesample;port=3306;password= 
        {password};AllowUserVariables=True;AutoEnlist=false";
        persistence.SqlDialect<SqlDialect.MySql>();
        persistence.ConnectionBuilder(
        connectionBuilder: () =>
            {
                return new MySqlConnection(connection);
            });
        var subscriptions = persistence.SubscriptionSettings();
        subscriptions.CacheFor(TimeSpan.FromMinutes(1));

        #endregion

        endpointConfiguration.UseTransport<LearningTransport>();
        endpointConfiguration.EnableInstallers();

        var endpointInstance = await Endpoint.Start(endpointConfiguration)
        .ConfigureAwait(false);

        Console.WriteLine("Press any key to exit");
        Console.ReadKey();

        await endpointInstance.Stop()
            .ConfigureAwait(false);
    }
 }

как решить mscorlib.dll Не удалось извлечь "MySqlPassword" из переменных окружения..? Пожалуйста, помогите мне..

Теги:
nservicebus

2 ответа

0
Лучший ответ

Код пытается извлечь имя пользователя и пароль из коллекции переменных окружения компьютера. Они будут установлены по-разному в зависимости от операционной системы, в которой работает среда.

Если вы работаете в Windows, вы можете изменить переменные среды, выполнив поиск "Редактировать переменные системной среды" в меню "Пуск".

В качестве альтернативы вы можете пропустить доступ к переменной окружения, просто установив переменные непосредственно в коде:

// ...
var password = "root";
var username = "root";
var connection = $"server=localhost;user={username};database=sqlpersistencesample;port=3306;password={password};AllowUserVariables=True;AutoEnlist=false";
// ...
  • 0
    большое спасибо...
0

Учитывая, что это сообщение об ошибке возникает из вашего кода, а именно из

        var password = Environment.GetEnvironmentVariable("root");
        if (string.IsNullOrWhiteSpace(password))
        {
            throw new Exception("Could not extract 'MySqlPassword' from Environment variables.");
        }

Я собираюсь догадаться, что нет либо root переменной окружения, либо нет, и она устанавливается в пустую строку.

Кроме того, учитывая, что вы позже пытаетесь прочитать имя пользователя из той же переменной среды, я думаю, что здесь что-то пошло не так.

  • 0
    Спасибо за ответ .. но я все еще не понимаю, как установить переменную среды ..?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню