Zum Hauptinhalt springen

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 aktualisiseren 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 Datenbankverbindun aktualisiseren 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 aktualisiseren 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 aktiviern 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 definitioonen dürfen dann aber nicht auf die neuste Version upgedated werden sondertn 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:

Hinweis
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.