**Итак, я пытаюсь написать приложение C# .NET Maui для покедекса. Это не должно быть слишком сложно, но по какой-то причине база данных mongodb, с которой я работаю, не будет сотрудничать, и я не могу получить из нее какие-либо данные. **
2024-07-31 17:45:13.295804-0400 PokedexApp\[82592:2135044\] Collection retrieved successfully.
2024-07-31 17:45:13.295938-0400 PokedexApp\[82592:2135044\] Counting documents...
Exception thrown: 'System.InvalidOperationException' in Microsoft.Maui.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.Maui.dll
Exception thrown: 'System.PlatformNotSupportedException' in MongoDB.Driver.Core.dll
3
Exception thrown: 'System.PlatformNotSupportedException' in System.Private.CoreLib.dll
2024-07-31 17:45:13.472036-0400 PokedexApp\[82592:2135044\] \[API\] Failed to create 0x88 image slot (alpha=1 wide=0) (client=0x293736f1) \[0x5 (os/kern) failure\]
Это мой тест, потому что я уже давно сталкиваюсь с этой проблемой.
public async Task\ TestMongoConnection()
{
try
{
string connectionString = "mongodb+srv://\:\@pokedex.mayccu6.mongodb.net/";
string databaseName = "Pokedex";
string collectionName = "Pokemon";
//I replaced strings I know the string is correct but omitted for obvious reasons
Console.WriteLine("Creating MongoClient...");
var client = new MongoClient(connectionString);
Console.WriteLine("MongoClient created successfully.");
Console.WriteLine($"Getting database: {databaseName}");
var database = client.GetDatabase(databaseName);
Console.WriteLine("Database retrieved successfully.");
Console.WriteLine($"Getting collection: {collectionName}");
var collection = database.GetCollection(collectionName);
Console.WriteLine("Collection retrieved successfully.");
Console.WriteLine("Counting documents...");
var result = await collection.CountDocumentsAsync(new BsonDocument());
Console.WriteLine($"Successfully connected. Document count: {result}");
return true;
}
catch (MongoConfigurationException mcex)
{
Console.WriteLine($"MongoDB configuration error: {mcex.Message}");
Console.WriteLine($"Stack trace: {mcex.StackTrace}");
return false;
}
catch (MongoAuthenticationException maex)
{
Console.WriteLine($"MongoDB authentication error: {maex.Message}");
Console.WriteLine($"Stack trace: {maex.StackTrace}");
return false;
}
catch (MongoConnectionException mcex)
{
Console.WriteLine($"MongoDB connection error: {mcex.Message}");
Console.WriteLine($"Stack trace: {mcex.StackTrace}");
return false;
}
catch (Exception ex)
{
Console.WriteLine($"Unexpected error: {ex.GetType().Name} - {ex.Message}");
Console.WriteLine($"Stack trace: {ex.StackTrace}");
return false;
}
}
}
Итак, проблема возникает, когда я пытаюсь позволить пользователю ввести имя в строку поиска, а затем он передает введенные данные в этот класс, который должен получить всю необходимую информацию. данные из переданного имени покемона, так как я сталкивался с этой проблемой так много раз, что решил вместо этого проверить, распознает ли он какие-либо файлы, и их должно быть 151, но он продолжает возвращать 0, и я не могу понять, почему
У меня все обновлено, установлен драйвер mongodb.driver и все такое. У меня есть все пакеты, и я некоторое время успешно запускаю эту программу, не пытаясь извлечь ее из базы данных. Кто-нибудь знает решение или способ выяснить, почему она продолжает выдавать это исключение?
Я смог подтвердить, что когда я ввожу тот же запрос, который у меня есть, непосредственно в базу данных, он правильно возвращает нужную мне информацию, поэтому я думаю, что это связано с соединением, но я не уверен. Я запускаю это в XCode для приложения IOS на всякий случай.
Извините, если это сбивает с толку, проблема в том, что каждый раз, когда я запускаю его, я получаю такое исключение
р>
"'System.PlatformNotSupportedException' in MongoDB.Driver.Core.dll
3
Exception thrown:"
Это остальная часть моего кода на этой странице
public PokemonPage(string searchText)
{
InitializeComponent();
var viewModel = new PokemonDetailViewModel();
BindingContext = viewModel;
//viewModel.LoadPokemonDataAsync(searchText);
TestConnection();
}
private async void TestConnection()
{
var viewModel = (PokemonDetailViewModel)BindingContext;
bool connectionSuccessful = await viewModel.TestMongoConnection();
if (!connectionSuccessful)
{
await DisplayAlert("Connection Error", "Failed to connect to the database", "OK");
}
}
public class PokemonDetailViewModel
{
#region attribute binders
private int number;
public int Number
{
get => number;
set { number = value; OnPropertyChanged(); }
}
private string name;
public string Name
{
get => name;
set { name = value; OnPropertyChanged(); }
}
private int _hp;
public int HP
{
get => _hp;
set
{
_hp = value;
OnPropertyChanged();
OnPropertyChanged(nameof(HPProgress));
}
}
public double HPProgress => HP / 200.0;
private double _atk;
public double Attack
{
get => _atk;
set
{
_atk = value;
OnPropertyChanged();
OnPropertyChanged(nameof(AttackProgress));
}
}
public double AttackProgress => Attack / 200.0;
private double _def;
public double Defense
{
get => _def;
set
{
_def = value;
OnPropertyChanged();
OnPropertyChanged(nameof(DefenseProgress));
}
}
public double DefenseProgress => Defense / 200.0;
private double _spatk;
public double SpAtk
{
get => _spatk;
set
{
_spatk = value;
OnPropertyChanged();
OnPropertyChanged(nameof(SpAtkProgress));
}
}
public double SpAtkProgress => SpAtk / 200.0;
private double _spdef;
public double SpDef
{
get => _spdef;
set
{
_spdef = value;
OnPropertyChanged();
OnPropertyChanged(nameof(SpDefProgress));
}
}
public double SpDefProgress => SpDef / 200.0;
private double _spd;
public double Speed
{
get => _spd;
set
{
_spd = value;
OnPropertyChanged();
OnPropertyChanged(nameof(SpeedProgress));
}
}
public double SpeedProgress => Speed / 200.0;
private string type1;
public string Type1
{
get => type1;
set { type1 = value; OnPropertyChanged(); }
}
private string type2;
public string Type2
{
get => type2;
set { type2 = value; OnPropertyChanged(); }
}
private string height;
public string Height
{
get => height;
set { height = value; OnPropertyChanged(); }
}
private string weight;
public string Weight
{
get => weight;
set { weight = value; OnPropertyChanged(); }
}
private string baseTotal;
public string BaseTotal
{
get => baseTotal;
set { baseTotal = value; OnPropertyChanged(); }
}
#endregion
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public async Task LoadPokemonDataAsync(string pokemonName)
{
try
{
Console.WriteLine($"Attempting to connect to database and search for {pokemonName}");
string connectionString = "mongodb+srv://tkhanpsn:Pokegocult@pokedex.mayccu6.mongodb.net";
string databaseName = "Pokedex";
string collectionName = "Pokedex.Pokemon";
var client = new MongoClient(connectionString);
Console.WriteLine("MongoClient created successfully");
var database = client.GetDatabase(databaseName);
Console.WriteLine("Database retrieved successfully");
var collection = database.GetCollection(collectionName);
Console.WriteLine("Collection retrieved successfully");
//Use Builders.Filter instead of Builders.Filter
var filter = Builders.Filter.Eq($" Name", "{pokemonName}");
var pokemon = await collection.Find(filter).FirstOrDefaultAsync();
Console.WriteLine("Find operation completed");
if (pokemon != null)
{
// Map database fields to properties
Console.WriteLine($"Pokemon Found: {pokemonName}");
Number = pokemon.Number;
Name = pokemon.Name;
Attack = pokemon.Attack;
Defense = pokemon.Defense;
Speed = pokemon.Speed;
HP = pokemon.HP;
Type1 = pokemon.Type1;
Type2 = pokemon.Type2;
Weight = pokemon.Weight;
Height = pokemon.Height;
BaseTotal = pokemon.BaseTotal;
// Add other properties you need to set
}
else
{
await Application.Current.MainPage.DisplayAlert("Error", "Pokemon Not Found", "OK");
}
}
catch (Exception ex)
{
await Application.Current.MainPage.DisplayAlert("Error", $"An error occurred: {ex.Message}", "OK");
}
}
Подробнее здесь: https://stackoverflow.com/questions/788 ... odb-driver
Исключение «Платформа не поддерживается» из MongoDB.Driver ⇐ C#
Место общения программистов C#
-
Anonymous
1722593104
Anonymous
**Итак, я пытаюсь написать приложение C# .NET Maui для покедекса. Это не должно быть слишком сложно, но по какой-то причине база данных mongodb, с которой я работаю, не будет сотрудничать, и я не могу получить из нее какие-либо данные. **
2024-07-31 17:45:13.295804-0400 PokedexApp\[82592:2135044\] Collection retrieved successfully.
2024-07-31 17:45:13.295938-0400 PokedexApp\[82592:2135044\] Counting documents...
Exception thrown: 'System.InvalidOperationException' in Microsoft.Maui.dll
Exception thrown: 'System.InvalidOperationException' in Microsoft.Maui.dll
Exception thrown: 'System.PlatformNotSupportedException' in MongoDB.Driver.Core.dll
3
Exception thrown: 'System.PlatformNotSupportedException' in System.Private.CoreLib.dll
2024-07-31 17:45:13.472036-0400 PokedexApp\[82592:2135044\] \[API\] Failed to create 0x88 image slot (alpha=1 wide=0) (client=0x293736f1) \[0x5 (os/kern) failure\]
[b]Это мой тест, потому что я уже давно сталкиваюсь с этой проблемой.[/b]
public async Task\ TestMongoConnection()
{
try
{
string connectionString = "mongodb+srv://\:\@pokedex.mayccu6.mongodb.net/";
string databaseName = "Pokedex";
string collectionName = "Pokemon";
//I replaced strings I know the string is correct but omitted for obvious reasons
Console.WriteLine("Creating MongoClient...");
var client = new MongoClient(connectionString);
Console.WriteLine("MongoClient created successfully.");
Console.WriteLine($"Getting database: {databaseName}");
var database = client.GetDatabase(databaseName);
Console.WriteLine("Database retrieved successfully.");
Console.WriteLine($"Getting collection: {collectionName}");
var collection = database.GetCollection(collectionName);
Console.WriteLine("Collection retrieved successfully.");
Console.WriteLine("Counting documents...");
var result = await collection.CountDocumentsAsync(new BsonDocument());
Console.WriteLine($"Successfully connected. Document count: {result}");
return true;
}
catch (MongoConfigurationException mcex)
{
Console.WriteLine($"MongoDB configuration error: {mcex.Message}");
Console.WriteLine($"Stack trace: {mcex.StackTrace}");
return false;
}
catch (MongoAuthenticationException maex)
{
Console.WriteLine($"MongoDB authentication error: {maex.Message}");
Console.WriteLine($"Stack trace: {maex.StackTrace}");
return false;
}
catch (MongoConnectionException mcex)
{
Console.WriteLine($"MongoDB connection error: {mcex.Message}");
Console.WriteLine($"Stack trace: {mcex.StackTrace}");
return false;
}
catch (Exception ex)
{
Console.WriteLine($"Unexpected error: {ex.GetType().Name} - {ex.Message}");
Console.WriteLine($"Stack trace: {ex.StackTrace}");
return false;
}
}
}
Итак, проблема возникает, когда я пытаюсь позволить пользователю ввести имя в строку поиска, а затем он передает введенные данные в этот класс, который должен получить всю необходимую информацию. данные из переданного имени покемона, так как я сталкивался с этой проблемой так много раз, что решил вместо этого проверить, распознает ли он какие-либо файлы, и их должно быть 151, но он продолжает возвращать 0, и я не могу понять, почему
У меня все обновлено, установлен драйвер mongodb.driver и все такое. У меня есть все пакеты, и я некоторое время успешно запускаю эту программу, не пытаясь извлечь ее из базы данных. Кто-нибудь знает решение или способ выяснить, почему она продолжает выдавать это исключение?
Я смог подтвердить, что когда я ввожу тот же запрос, который у меня есть, непосредственно в базу данных, он правильно возвращает нужную мне информацию, поэтому я думаю, что это связано с соединением, но я не уверен. Я запускаю это в XCode для приложения IOS на всякий случай.
Извините, если это сбивает с толку, проблема в том, что каждый раз, когда я запускаю его, я получаю такое исключение
р>
"'System.PlatformNotSupportedException' in MongoDB.Driver.Core.dll
3
Exception thrown:"
Это остальная часть моего кода на этой странице
public PokemonPage(string searchText)
{
InitializeComponent();
var viewModel = new PokemonDetailViewModel();
BindingContext = viewModel;
//viewModel.LoadPokemonDataAsync(searchText);
TestConnection();
}
private async void TestConnection()
{
var viewModel = (PokemonDetailViewModel)BindingContext;
bool connectionSuccessful = await viewModel.TestMongoConnection();
if (!connectionSuccessful)
{
await DisplayAlert("Connection Error", "Failed to connect to the database", "OK");
}
}
public class PokemonDetailViewModel
{
#region attribute binders
private int number;
public int Number
{
get => number;
set { number = value; OnPropertyChanged(); }
}
private string name;
public string Name
{
get => name;
set { name = value; OnPropertyChanged(); }
}
private int _hp;
public int HP
{
get => _hp;
set
{
_hp = value;
OnPropertyChanged();
OnPropertyChanged(nameof(HPProgress));
}
}
public double HPProgress => HP / 200.0;
private double _atk;
public double Attack
{
get => _atk;
set
{
_atk = value;
OnPropertyChanged();
OnPropertyChanged(nameof(AttackProgress));
}
}
public double AttackProgress => Attack / 200.0;
private double _def;
public double Defense
{
get => _def;
set
{
_def = value;
OnPropertyChanged();
OnPropertyChanged(nameof(DefenseProgress));
}
}
public double DefenseProgress => Defense / 200.0;
private double _spatk;
public double SpAtk
{
get => _spatk;
set
{
_spatk = value;
OnPropertyChanged();
OnPropertyChanged(nameof(SpAtkProgress));
}
}
public double SpAtkProgress => SpAtk / 200.0;
private double _spdef;
public double SpDef
{
get => _spdef;
set
{
_spdef = value;
OnPropertyChanged();
OnPropertyChanged(nameof(SpDefProgress));
}
}
public double SpDefProgress => SpDef / 200.0;
private double _spd;
public double Speed
{
get => _spd;
set
{
_spd = value;
OnPropertyChanged();
OnPropertyChanged(nameof(SpeedProgress));
}
}
public double SpeedProgress => Speed / 200.0;
private string type1;
public string Type1
{
get => type1;
set { type1 = value; OnPropertyChanged(); }
}
private string type2;
public string Type2
{
get => type2;
set { type2 = value; OnPropertyChanged(); }
}
private string height;
public string Height
{
get => height;
set { height = value; OnPropertyChanged(); }
}
private string weight;
public string Weight
{
get => weight;
set { weight = value; OnPropertyChanged(); }
}
private string baseTotal;
public string BaseTotal
{
get => baseTotal;
set { baseTotal = value; OnPropertyChanged(); }
}
#endregion
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public async Task LoadPokemonDataAsync(string pokemonName)
{
try
{
Console.WriteLine($"Attempting to connect to database and search for {pokemonName}");
string connectionString = "mongodb+srv://tkhanpsn:Pokegocult@pokedex.mayccu6.mongodb.net";
string databaseName = "Pokedex";
string collectionName = "Pokedex.Pokemon";
var client = new MongoClient(connectionString);
Console.WriteLine("MongoClient created successfully");
var database = client.GetDatabase(databaseName);
Console.WriteLine("Database retrieved successfully");
var collection = database.GetCollection(collectionName);
Console.WriteLine("Collection retrieved successfully");
//Use Builders.Filter instead of Builders.Filter
var filter = Builders.Filter.Eq($" Name", "{pokemonName}");
var pokemon = await collection.Find(filter).FirstOrDefaultAsync();
Console.WriteLine("Find operation completed");
if (pokemon != null)
{
// Map database fields to properties
Console.WriteLine($"Pokemon Found: {pokemonName}");
Number = pokemon.Number;
Name = pokemon.Name;
Attack = pokemon.Attack;
Defense = pokemon.Defense;
Speed = pokemon.Speed;
HP = pokemon.HP;
Type1 = pokemon.Type1;
Type2 = pokemon.Type2;
Weight = pokemon.Weight;
Height = pokemon.Height;
BaseTotal = pokemon.BaseTotal;
// Add other properties you need to set
}
else
{
await Application.Current.MainPage.DisplayAlert("Error", "Pokemon Not Found", "OK");
}
}
catch (Exception ex)
{
await Application.Current.MainPage.DisplayAlert("Error", $"An error occurred: {ex.Message}", "OK");
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78824910/platform-not-supported-exception-from-mongodb-driver[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия