kapral18
(Kapral18)
30 Grudzień 2013 11:41
#1
Piszę swoją pierwszą aplikację internetową na platformę Windows 8 i mam pewien problem…
Do komunikacji z MySQLem używam biblioteki MySql.Data.RT.dll, jednak powoduje mi ona konflikty certyfikacji Jak mogę to naprawić?
ZAKOŃCZONO NIEPOMYŚLNIE Obsługiwane interfejsy API Znaleziono błąd: Podczas testu obsługiwanych interfejsów API wykryto następujące błędy: Interfejs API WSAGetLastError w ws2_32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API WSAIoctl w ws2_32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API connect w ws2_32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API ioctlsocket w ws2_32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API recv w ws2_32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API send w ws2_32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API socket w ws2_32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API CancelIo w kernel32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API CreateFileW w kernel32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API MapViewOfFile w kernel32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API OpenFileMappingW w kernel32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API PeekNamedPipe w kernel32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API WaitNamedPipeA w kernel32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API AcquireCredentialsHandleW w secur32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API CompleteAuthToken w secur32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API DeleteSecurityContext w secur32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API FreeCredentialsHandle w secur32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API InitializeSecurityContextW w secur32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Interfejs API QueryContextAttributesW w secur32.dll nie jest obsługiwany dla tego typu aplikacji. MySql.Data.RT.dll wywołuje ten interfejs API. Skutki w przypadku braku rozwiązania problemu: Używanie interfejsu API, który nie znajduje się w zestawie Windows SDK dla aplikacji Sklepu Windows, stanowi naruszenie wymagań certyfikacji Sklepu Windows. Sposób rozwiązania problemu: Zapoznaj się z komunikatami o błędach, aby zidentyfikować interfejs API spoza zestawu Windows SDK dla aplikacji Sklepu Windows. Zauważ, że w przypadku aplikacji C++ utworzonych w konfiguracji debugowania wynik tego testu będzie negatywny, nawet jeśli użyto tylko interfejsów API należących do zestawu Windows SDK dla aplikacji Sklepu Windows. Aby uzyskać więcej informacji, zobacz link poniżej: Alternatywne rozwiązania dla interfejsów API systemu Windows w aplikacjach Sklepu Windows.
Fiolek
(Fiołek)
30 Grudzień 2013 15:21
#2
Aplikacje Modern(dostępne w Sklepie, bo te “poza” tak naprawdę mogą korzystać z wszystkiego ) nie obsługują mechanizmów takich jak memmapped files czy named pipes (a tutaj są używane). Najwidoczniej Oracle nie postarało się i to jest wersja identyczna z klasyczną .NET-ową, do tego wywołuje natywne metody(dokładnie te, które są wylistowane), przez P/Invoke, przez co dało się to skompilować i “działa”.
kapral18
(Kapral18)
30 Grudzień 2013 16:28
#3
Jest inny sposób na używanie MySQLa pod Modern?
Fiolek
(Fiołek)
30 Grudzień 2013 16:55
#4
Dopóki ktoś(Oracle) tego nie poprawi, to pozostaje zrobić web service udostępniający dane(np. używając WCF) i korzystać z niego. Rozwiązanie jest o tyle lepsze, że nikt nieupoważniony nie będzie mógł zmieniać danych i nie będzie miał bezpośredniego dostępu do bazy. Jeśli to aplikacja dedykowana dla jakiejś firmy, to nie ma sensu się przejmować certyfikacją, bo aplikacja i tak nie wyjdzie(nie powinna wyjść) poza firmę.
mktos
(mktos)
31 Grudzień 2013 11:34
#5
Sprawdź czy identyczny problem następuje kiedy aplikacja jest targetowana dla Windows 8, nie dla Windows 8.1 (jeśli masz taką możliwość) - możliwe, że Oracle nie przygotował wtyczki dla platformy 8.1, gdzie zapewne zmieniono jakieś elementy certyfikacji.
Parę dni temu wyszła też nowa wersja connectora, 6.8, tej używasz?