Bekannte Probleme
Eine Tabelle/View oder Synonym erscheint nicht in MapGuide Maestro/MapGuide Author
Ist ein MapGuide Problem. MapGuide Service neu starten und Maestro neu starten.
Eine Tabelle/View/Synonym/Spalte erscheint nicht oder wird mit falschen Spalten im AppBuilder angezeigt
Lösung: Im AppBuilder die Datenbankverbindung aktualisieren und Views Registrieren.
Wenn man an der Datenbank Struktur änderungen mit anderen Tools als dem AppBuilder macht,
z.B. SQL Plus, DBeaver, SQL Sheet etc, dann weiß MapEdit davon nichts.
D.h. nach allen Änderungen mit Fremdtools muss zwingend die Datenbankverbindung aktualisieren werden.
Wenn man Views händisch anlegt (was man nie machen sollte) muss man diese Registrieren.
Siehe:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/database-connections/structure/views#view-registrieren
Bei Map 3D/Topobase Datenstrukturen muss der View ggf in TB_DICTIONARY eingetragen werden.
In einem Generischen Formular das auf einem View basiert erscheinen falsche Datensätze
Dies passiert wenn das Feld FID oder ID des Views nicht eindeutig ist. Bilden Sie eine eindeutige FID aus allen beteiligten Tabellen.
Details siehe Kapitel "Views"
https://help.mapedit.de/admin-guide/mapedit-appbuilder/database-connections/structure/views
ORA-01031: insufficient privileges when creating a oracle view
Die Meldung kommt beim Anlegen eines Views und bedeutet das Sie Oracle seitige keine Rechte haben um einen View anzulegen.
Melden Sie sich in der Oracle Console mit einem sysdba Benutzter an und geben sie dem User das Recht Views anzulegen.
Beispiel:
GRANT CREATE ANY VIEW TO your_user;
Oder geben Sie dem User alle Rechte via:
GRANT ALL PRIVILEGES TO your_user;
Die zugrunde liegende Verbindung wurde geschlossen / The underlying connection was closed
Beim starten von MapEdit.exe oder MapEdit.AppBuilder.exe kommt folgende Meldung:
MapEdit Starter:
The underlying connection was closed: An unexpected error accured on a send.
Die zugrunde liegende Verbindung wurde geschlossen
Lösung: Prüfen Sie ob sie die neusten Versionen der MapEdit.exe/MapEdit.AppBuilder.exe Dateien verwenden und aktualisieren Sie diese auf den neusten Stand der letzten Software Version.
Wenn Sie ältere Versionen dieser Dateien benutzen funktionieren diese ggf. wegen Microsoft Sicherheits und Zertifikats Änderungen nicht mehr.
Error:[Hosting_ServiceActivationFailed]
Error:[Hosting_ServiceActivationFailed]
Argumente: http://localhost/mum.geo.services/DataAccessService.svc
Lösung: Die URL die bei Argumente steht ausführen, dann bekommt man den wahren Fehler. In vorliegenden Fall war zum Beispiel der Hauptspeicher des Rechners voll.
Der angeforderte Dienst "http://meineurl/mum.geo.services/Application.svc" konnte nicht aktiviert werden
Der angeforderte Dienst "http://meineurl/mum.geo.services/Application.svc" konnte nicht aktiviert werden.
Lösung: Auf den Rechner gehen auf dem MapEdit Server installiert ist. Dort das hier eingeben http://localhost/mum.geo.services/Application.svc?wsdl Dann bekommt man die wahre Meldung.
MapEdit started nicht, Methode not Allowed
Der Remoteserver hat eine unerwartete Antwort zurückgegeben: (405) Method Not Allowed.
In der Installations Doku schauen, da steht das man bei der IIS installation unter WCF das HTTP aktivieren muss.
Turn Windows features on or off .Net Framework 4.8 -> WCF Services - >HTTP Activation
Projektion in Generic Dialogen funktioniert nicht
Die kann vorkommen wenn man "Bennante Projektionen" benutzt und über SQL TextBoxen oder SQL Labels gefiltert hat.
Wenn man benannte Projektionen über Topobase neu erzeugt, dann fehlt per default bei Vorlage SQL der von Topobase angeboten wird dort beim Tabellenname der Aliasname "a".
Man muss diesen Alias "a" händisch eintragen:
Falsch:
FID_BAUM in (select FID from BAUM_STAMMDATEN where {Filter})
Richtig:
FID_BAUM in (select FID from BAUM_STAMMDATEN a where {Filter})
Die Einträge sind in der Tabelle TB_GN_DIALOG_PROJECTION zu finden wenn man diese nicht über die UI machen will.
In Professional geht der falsche Generic Dialog auf
Dies kommt vor wenn es sich um einen View handelt. Die Tabelle die geöffnet wird, wird im View durch den Eintrag "Attribute Table" bestimmt. Prüfen Sie bei dem verwendeten View im AppBuilder ob bei "Attribute Table" der richtige Tabellenname eingetragen ist.
Es kann auch sein das für den Dialog eine Dialog Umleitung eingerichtet wurde. Prüfen Sie dazu die Einstellung unter "Tabelle/View" -> "Info Umleitung"
In Map Guide Maestro kommen keine Linien Stile in der Auswahl Liste
Die Liste ist leer. Dieser Effekt tritt in Maestro 6.0m11 auf. In Maestro 6.0m10 geht es.
Loesung: Maestro 6.0m10 verwenden oder in das XML gehen und den Linien Stil Namen haendisch eintragen.
Maestro 6.0m10 kann auch parallel installiert werden, die Layer definitionen dürfen dann aber nicht auf die neuste Version upgedated werden sondern müssen auf 2.4. bleiben.
Meldung "Methode nicht gefunden/Method not found" bei ausführen von Skripten
Öffnen Sie das Script im AppBuilder und drücken Sie den "Kompilieren" Knopf. Danach sollte das Problem behoben sein.
Meldung "Methode nicht gefunden/Method not found" bei starten von MapEdit
Die kann vorkommen wenn der Kunde eigene Plugins Programmiert hat und diese nicht mit den neusten DLLs kompiliert hat.
Der Plugin Entwickler muss zur Behebung sein Plugin mit den neusten MapEdit DLLs aus dem Verzeichnis CoreDLLs kompilieren.
Siehe auch https://help.mapedit.de/api/intro/
Error: (413) Request Entity Too Large
Dies kann vorkommen wenn die Datei web.config im Verzeichnis Mum.Geo.Services des MapEdit Web Servers sehr alt ist und veraltete Einstellungen hat.
Die Web Config muss so aussehen:
<?xml version="1.0"?>
<!-- For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<appSettings>
<add key="DataPath" value="C:\inetpub\wwwroot\MumGeoData\" />
alle anderen einstellungen mit add key
</appSettings>
<system.web>
<compilation debug="true" batch="false" targetFramework="4.8" />
<!--
<globalization culture="de" uiCulture="de-DE" />
<globalization culture="en-US" uiCulture="en-US" />
-->
</system.web>
<system.serviceModel>
<!-- If you wanna use Https then change Http to Https -->
<client configSource="Config\Https.Client.config" />
<behaviors configSource="Config\Https.Behaviors.config" />
<bindings configSource="Config\Https.Bindings.config" />
<services configSource="Config\Https.Services.config" />
<!-- -->
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
Prüfen Sie das bei targetFramework 4.8 steht und nicht 4!
Die Einträge client configSource, behaviors configSource, bindings configSource und services configSource müssen vorhanden sein.
Es darf keine Einträge/Blöcke mit system.runtime.serialization geben und servicemodel muss exakt so aussehen wie oben.
Beispiel für eine Fehlerhafte web.config Inhalt.
targetFramework steht hier nicht auf 4.8 system.serviceModel sieht nicht aus wie oben. Es dürfen da keine customBinding oder serviceBehaviors stehen.
<system.web>
<compilation debug="true" batch="false" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
<behavior name="metadataAndDebug">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="Mum.Geo.Services.IO.customBinding0">
<binaryMessageEncoding />
<httpTransport />
</binding>
<binding name="Mum.Geo.Services.Application.customBinding0">
<binaryMessageEncoding />
<httpTransport />
</binding>
<binding name="Mum.Geo.Services.DataAccessService.customBinding0">
<binaryMessageEncoding />
<httpTransport />
</binding>
<binding name="Mum.Geo.Services.ResourceLimiter.customBinding0">
<binaryMessageEncoding />
<httpTransport />
</binding>
</customBinding>
</bindings>
<services>
<service behaviorConfiguration="metadataAndDebug" name="Mum.Geo.Services.IO">
<endpoint address="" binding="customBinding" bindingConfiguration="Mum.Geo.Services.IO.customBinding0" contract="Mum.Geo.Services.IO" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service behaviorConfiguration="metadataAndDebug" name="Mum.Geo.Services.Application">
<endpoint address="" binding="customBinding" bindingConfiguration="Mum.Geo.Services.Application.customBinding0" contract="Mum.Geo.Services.Application" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service behaviorConfiguration="metadataAndDebug" name="Mum.Geo.Services.DataAccessService">
<endpoint address="" binding="customBinding" bindingConfiguration="Mum.Geo.Services.DataAccessService.customBinding0" contract="Mum.Geo.Services.DataAccessService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service behaviorConfiguration="metadataAndDebug" name="Mum.Geo.Services.ResourceLimiter">
<endpoint address="" binding="customBinding" bindingConfiguration="Mum.Geo.Services.ResourceLimiter.customBinding0" contract="Mum.Geo.Services.ResourceLimiter" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.runtime.serialization>
<dataContractSerializer>
<declaredTypes>
<add type="Contact,Host,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null">
<knownType type="Customer,MyClassLibrary,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null" />
</add>
</declaredTypes>
</dataContractSerializer>
</system.runtime.serialization>
</configuration>
MapEdit geht nicht mit Oracle 21
In MapEdit kommt die Meldung "Server did not respond within the specified timeout interval".
In Windows müssen die Pfad Variablen ORACLE_HOME und TNS_ADMIN gesetzt sein. Diese werden von der Oracle installation nicht erzeugt.
Beispiel:
set ORACLE_HOME=E:\app\Oracle\product\21.3.0\dbhome_1
set TNS_ADMIN=E:\app\Oracle\homes\OraDB21Home1\network\admin
Zusätzlich sind Leseberechtigung für den IIS_IUSRS auf das Oracle Verzeichnis notwendig.
Beim Aufruf von MapServer Karten kommt: Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht gefunden.
Das kann vorkommen wenn sehr viele Layer benutzt werden, dann wird die URL wegen der vielen Layername zu lang bzw. länger als die Standardmässig zugelassenen 2048 Zeichen des IIS.
Das ist keine Einschraenkung von MapEdit sondern vom IIS bzw WebServer der für MapServer verwendet wird. D.h. man muss den Wert im WebServer dort wo die MapServer Software installiert ist hochsetzen das dieser mehr Zeichen durchlässt.
Wenn den Internet Information Service (IIS) für MapServer verwendet dann:
IIS -> "Default Web Site" -> Request Filtering -> Register "Query String" "Edit Feature Settings..." "Maximum query string (Bytes)" von 2048 auf höheren Wert ändern der für die Länge der URL ausreicht. Beispielsweise 10000.
ORA-29861: Domain-Index ist als LOADING/FAILED/UNUSABLE markiert
Das Problem kann unter anderem auftreten wenn ein GEOM Feld nicht in der Tabelle USER_SDO_GEOM_METADATA registriert ist.
Prüfen das mindestens MapEdit 23.1.241 installiert ist. Dann Im AppBuilder bei der Datenbank die "Datenbank wartung" öffnen. "Spatial Metadata erneuern" anhaken, unten rechts "prüfen und reparieren" einstellen und "Ausführen" drücken.
msOGRFileOpen: Native SQL not available, no Spatialite support and/or not a Spatialite enabled db
Kann bei MapServer in Verbindung mit SQLite auftreten.
Diese ist eine Falsch-Meldung und bedeutet in vielen Fallen das das SQL nicht mit SQLite funktioniert. z.B. wenn SQL Funktionen oder Syntax benutzt wird die nicht SQLite conform sind.
Führen Sie den SQL der Probleme macht im SQL Query Tool aus und setzen Sie hinter den SQL den Ausdruck
-–NOSIM
in die gleiche Zeile.
Beispiel:
select fid, replace(concat( PRE, LABEL_TEXT, SUF),'\P', CHAR(10)) as ms_label_text from park_lbl --NOSIM
Wirft den Fehler
no such function: concat.
Der SQL muss in diesem Fall umgeändert werden in
select fid, replace(coalesce(PRE,'')||coalesce(LABEL_TEXT,'')||coalesce(SUF,''),'\P', CHAR(10)) as ms_label_text from park_lbl
D.h. concat wird durch || ersetzt und die einzelnen Parameter müssen mit coalesce in einen nicht NULL wert umgewandelt
werden.
Drucken/Plotten geht nicht
Es kommt die Meldung
Bei der Erstellung der PDF ist ein Fehler aufgetreten.
Keine Daten erhalten.
Prüfen Sie bitte die Logdatei auf dem Server bzw. wenden Sie sich an den Systemadministrator
Wo die Server Logdatei steht bzw wie man diese für das Plotmodul einrichtet finden Sie hier
In vielen Fällen ist das Problem das der MapEdit Server Rechner Abfragen z.B. auf externe WMS Karten URLS nicht ausführen kann weil der MapEdit Server keinen Zugriff auf das Internet hat oder auf die WMS URL hat. Testen Sie die ggf WMS URL im Browser des MapEdit Server Rechners.
MapEdit kann nicht gestartet werden - Windows Defender blockiert
Der Name der Intune Richtlinie ist: Block executable files from running unless they meet a prevalence
Die Ursache der Warnmeldung wird diese Einstellung sein: Block executable files from running unless they meet a prevalence, age, or trusted list criterion ist auf "Warn" gesetzt.
Mit den Ausnahmen unter: ASR Only Per Rule Exclusions
Weitere konfigurierte Ausnahme: Attack Surface Reduction Only Exclusions
Link zu dem Artikel bei Microsoft: https://learn.microsoft.com/en-us/defender-endpoint/attack-surface-reduction-rules-reference
Damit ist der Betrieb von MapEdit gewährleistet. Jedoch Setups etc. laufen damit nicht (MuMAlkis etc). Hier wird immer eine temporäre Datei generiert und diese geblockt. Da lässt sich kein Name hinterlegen für eine Ausnahme.
Warum ist das so?
Siehe https://learn.microsoft.com/en-us/defender-endpoint/attack-surface-reduction
Attack surface reduction rules target certain software behaviors, such as:
Launching executable files and scripts that attempt to download or run files
Running obfuscated or otherwise suspicious scripts
Performing behaviors that apps don't usually initiate during normal day-to-day work
Dies trifft auf MapEdit zu weil:
- Die MapEdit.exe etc führen jeweils eine andere exe aus (die im cache MapEdit.Dektop.exe)
- MapEdit verwendet Plugins (also andere DLLs) läd diese herunter und führt diese aus.
- MapEdit verwendet für Formeln und anderes VB/C# Script
Fehler: 23505: doppelter Schlüsselwert verletzt Unique-Constraint
Wenn Sie diese Fehlermeldung bekommen bedeutet das, das auf der Spalte einer Tabelle ein eindeutiger Index existiert der verhindert das doppelte Werte in die Spalte eingetragen werden.
Beispiel:
Fehler: 23505: doppelter Schlüsselwert verletzt Unique-Constraint »idx_638536131165400766«
Mit diesem SQL finden Sie heraus auf welche Tabelle und Spalte der Index geht.
SELECT tablename,indexname,indexdef FROM pg_indexes WHERE schemaname=current_schema and indexname='idx_638536131165400766'
Hinter dem Wort "public." finden Sie den Namen der Tabelle. Am Ende finden Sie in Klammern den oder die Spaltennamen auf die der eindeutige Index geht.
Lösung:
Sie müssen nun entscheiden ob der Eindeutige Index Sinn macht oder nicht. Möglicherweise haben Sie diesen Index versehentlich angelegt.
Lesen Sie dazu
https://help.mapedit.de/admin-guide/mapedit-appbuilder/database-connections/structure/columns#eindeutig
Wenn es sich um einen Index auf eine Spalte handelt die Sie nicht selbst angelegt haben sondern von einer Fertigen Fachschale kommt dann kontaktieren Sie ggf die MuM Hotline.
Manche TileServer Karten werden beim TileUpdater oder der Kartenverwaltung nicht angezeigt
Wenn in der TileServer Konfiguration die URL bei RefSysInfoFile nicht korrekt oder nicht vom TileServer erreichbar ist, dann werden diese Karten bei der Auswahl im AppBuilder z.B. bei der Kartenverwaltung oder TileUpdater, nicht angezeigt.
Stellen Sie sicher das der TileServer auf die RefSysINfo URL zugreifen kann. Sie können dies testen in dem Sie auf dem Rechner auf dem der TileServer installiert ist die URL in den Web Browser eingeben. Sie müssen dann den Inhalt der Datei sehen.
Error datasource was not found: Tabellenname
Kann an Stellen auftreten wo MapEdit Core benutzt wird. Wie z.B. der Netzwerkverfolgung.
Problem: MapEdit Core kennt die Datenbank noch nicht und muss synchronisiert werden.
Lösung: Im AppBuilder -> Core Admin -> die Knöpfe "Synchronize Repository" und "Synchronize Data Sources" drücken.
2P16: kann Namen der Sichtspalte XX nicht in YY ändern
Da kann bei Postgres auftreten wenn man "CREATE OR REPLACE VIEW" ausführt.
siehe Postgres Handbuch:
https://www.postgresql.org/docs/9.3/sql-createview.html
Lösung:
Statt "CREATE OR REPLACE VIEW" zuerst "DROP VIEW" und dann "CREATE VIEW" ausführen.
Bei Oracle ist dies nicht so!
HTTP Error 404.3 - Not Found
Bei einer neuen Installation von MapEdit Server kkann diese Meldung kommen wenn ASP.NET 4.5 nicht installiert ist.
Installation ASP.NET 4.5:
- Open the Control Panel (or run appwiz.cpl)
- Click Programs
- Click Turn Windows features on or off
- Click Internet Information Services to install the default features
- Expand the Application Development Features node
- Click ASP.NET 4.5 to add the features that support ASP.NET
- Click OK to close the dialog box