Bodo's Dynamics NAV Blog
Bodo ist ein Dynamics NAV Urgestein. Er programmiert NAV seit DOS Zeiten und hat auch keine Scheu vor .NET. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu NAV Entwicklern ausgebildet. In diesem Blog veröffentlicht Bodo von Zeit zu Zeit technische Kabinettstückchen aus der Welt von Dynamics NAV und .NET.Der NAV-Client versucht, eine externe Komponente auszuführen
Kennen Sie die in Microsoft Dynamics NAV 2009 R2 neue Warnmeldung „Der NAV-Client versucht, eine externe Komponente auszuführen“?

Offensichtlich hat Microsoft die Option „Zulassen und nicht mehr fragen“ nicht implementiert, so dass diese Warnmeldung jedes Mal aufs Neue erscheint. Ärgerlich. Frage: Warum ist diese Option nicht implementiert? Antwort: Weil diese Option überflüssig ist, wenn sich NAV Client und Dynamics NAV Server nur ausreichend vertrauen.
Mit Microsoft Dynamics NAV 2009 R2 wird einer neuer Datentyp „DotNet“ eingeführt. Mit Hilfe dieses Datentyps haben wir als NAV Entwickler eine elegante Möglichkeit, .NET-Assemblies in die C/AL Programmierung zu integrieren.
Bauen wir ein einfaches Beispiel und lassen uns den Maschinennamen mit Hilfe des Properties „MachineName“ der Klasse „System.Environment“ der Assembly „mscorlib“ anzeigen:
OBJECT Codeunit 50000 System Environment
{
OBJECT-PROPERTIES
{
Date=11.01.11;
Time=10:30:00;
Modified=Yes;
Version List=;
}
PROPERTIES
{
SystemEnvironment@1000000000 : DotNet "'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Environment";
MachineName@1000000001 : Text[30];
BEGIN
MachineName := SystemEnvironment.MachineName;
MESSAGE('MachineName = %1', MachineName);
END;
}
CODE
{
BEGIN
END.
}
}
Welcher Maschinenname wird angezeigt? Richtig! Der Name der Maschine, auf der der Dynamics NAV Server läuft und nicht der Name unseres NAV Clients.
Der Grund ist das Property „RunOnClient“ der DotNet-Variable „SystemEnvironment“. Dieses Property steht standardmäßig auf „No“, so dass die Codeausführung auf dem Dynamics NAV Server und nicht auf dem NAV Client läuft.
Ändern wir dieses Property auf „Yes“, läuft die Codeausführung auf dem NAV Client. Allerdings erst, wenn wir die Warnmeldung oben quittiert haben. Damit kommen wir auf unsere eigentliche Fragestellung zurück, wie wir diese Warnmeldung unterdrücken.
Die Lösung besteht darin, den NAV Client zu einer Kerberos-Authentifizierung anstelle einer NTLM-Authentifizierung gegenüber dem Dynamics NAV Server zu bewegen. Dazu öffnen wir die Konfigurationsdatei „ClientUserSettings.config“ für den NAV Client im Verzeichnis „C:\Users\<Benutzername>\AppData\Local\Microsoft\Microsoft Dynamics NAV“ (Hinweis: Das Verzeichnis „AppData“ wird standardmäßig nicht angezeigt. Der Verzeichnisname gilt nur für Windows 7 und Windows Server 2008 R2). Und ändern den Eintrag für „ServicePrincipalNameRequired“ von „false“ auf „true“. Damit vertrauen sich NAV Client und Dynamics NAV Server und die Warnmeldung wird nicht mehr angezeigt.
<configuration>
<appSettings>
<add key="Server" value="SPIDERMAN" />
<add key="ServerInstance" value="DynamicsNAV" />
<add key="ServerPort" value="7046" />
<add key="ProtectionLevel" value="EncryptAndSign" />
<add key="UrlHistory" value="" />
<add key="CompressionThreshold" value="64" />
<add key="ChunkSize" value="28" />
<add key="AllowNtlm" value="true" />
<add key="ServicePrincipalNameRequired" value="true" />
<add key="OpenConnectionTimeout" value="00:00:30" />
<add key="ClientCredentialType" value="Windows" />
<add key="DnsIdentity" value="" />
<add key="UnknownSpnHint" value="(net.tcp://spiderman:7046/DynamicsNAV/Service)=Spn;" />
</appSettings>
</configuration>
Neueste Einträge
- Dynamics NAV und das Ausdrucken externer Dateien
- Fehlende Icons in der Toolbar der Seitenansicht für die Berichte
- Dynamics NAV Web Services und die Reihenfolge der Ereignistrigger
- Der Unterschied zwischen den Sicherheitsmodellen Standard und Enhanced
- NAV 2009 R2 – Login-Dialog für den Role Tailored Client
- [UPDATE] NAV 2009 – Kritischer Fehler in Berichten für den Role Tailored Client
- NAV 2009 – Kritischer Fehler in Berichten für den Role Tailored Client
- NAV 2009 – Security Filter, Buchungsdatum und Rec.READPERMISSION
- NAV 2009 – Funktion FORMAT, Datentyp OPTION und unterschiedliches Verhalten von Classic Client und Role Tailored Client
- NAV 2009 – Quellcode des Transformation Tools veröffentlicht
- NAV 2009 – Copy & Paste und böse Zeichen in Text- und Code-Feldern
- NAV 2009 – Unerwartetes Verhalten von Codeunit.RUN
- NAV 2009 – Notizen und Benachrichtigungen an Active Directory Gruppen
- NAV 2009 – Interner Fehler 12 in Modul 40
- NAV 2009 Form Transformation – Wo sind die deutschen (DEU) Captions hin?
- NAV 2009 und die Frage, warum die Anzahl der Inforegister PAGE.RUNMODAL beeinflusst
- NAV 2009 Web Services und das Geheimnis der Extension Codeunits
- Der NAV-Client zeigt in der Übersicht der aktiven Sessions nur die eigene Session an
- Der NAV-Client versucht, eine externe Komponente auszuführen
Nach Datum
Tag Cloud
2009 active directory add-in addin ascii bericht buchungsdatum caption classic codeunit copy drucken enhanced export extension form format gdpdu icons inforegister ldap login nav option page paste pdf r2 readpermission reihenfolge report rtc run runmodal securtiy service princial name session sicherheit sicherheitsmodelle spn sqlserver standard toolbar transformation transformation tool trigger webservices übersicht

