Microsoft Dynamics

Problembehandlung bei Microsoft Dynamics CRM

Aaron Elder

 

Auf einen Blick:

  • Zur Veranschaulichung eine Lösungsarchitektur
  • Problembehandlung bei grundlegenden Prinzipien
  • Tools zur Diagnose von Serverproblemen
  • Schritte zum Auflösen von CRM-Fehlern

Inhalt

Der Stapel
Boden-Regeln
Server-Problembehandlung
Zu Hause Beispiel wiedergeben
Umbrechen von

Ich wieder für einen zweiten Artikel auf Microsoft DynamicsCRM ’m (finden Sie unter den ersten Artikel"Bereitstellen von Microsoft Dynamics CRM 4.0"), mit Schwerpunkt auf etwas ich über Leidenschaftliches – d. h., Problembehandlung.Problembehandlung bei Microsoft CRM ist nicht viel anders als Problembehandlung bei anderen n-Tier-Webanwendungen auf dem Microsoft-Stapel erstellt.Ist in diesem Artikel kein Gewusst-wie-Handbuch oder eine Auflistung von "101 Tipps & Tricks." Stattdessen werden die Grundlagen von CRM-Komponenten und Tools zum Isolieren, verstehen und Lösen von Problemen erörtert.In diesem Artikel werde ich mich nur zur Problembehandlung die serverseitige Aspekte des Microsoft CRM Probleme konzentrieren.

Der Stapel

Mit jedem System komplexer werden den menschlichen Text oder eine n-Tier-Webanwendung, die viele gleichermaßen komplexe Subsysteme und externen Systemen nutzt, ist es wichtig zu verstehen "System-Stapel." Der Stapel ist im Grunde eine Blaupause eines Systems, das ermöglicht Ihnen, alle Komponenten eines Systems und wie erstellen und auf jeden anderen layer verstehen.Der Stapel konnte auch aufgerufen werden Diagramm Architektur Lösung wie es die Komponenten der Lösung dargestellt – in diesem Fall Microsoft CRM.Sobald Sie die Lösung kennen, müssen Sie auch verstehen, wie die Lösung bereitgestellt wurde.Dafür benötigen Sie ein Systemdiagramm Architektur, die veranschaulicht, wobei jede Komponente der Lösung in Relation zu anderen in Ihrer Bereitstellung befindet.Verstehen all dies ist wichtig, können das Problem einzugrenzen.

Abbildung 1 zeigt eine Lösung Architektur Diagramm von Microsoft Dynamics CRM 4.0 aller seiner Hauptkomponenten und ihre Abhängigkeiten darstellen.Beachten Sie, dass jede Komponente wiederum eigene Diagramm der gleich oder größer Komplexität konnte.Computersysteme sind alle zur Abstraktion, den Prozess, eine Systemkomponente verfügbar eine Reihe von Features ist, ein anderes, abhängige Komponente kann abhängig, die interne Komplexität der Komponente ausblenden.Abstraktion wird ein Problem bei der Problembehandlung isoliert werden müssen.

fig01.gif

Abbildung 1 UML Paketdiagramm darstellen einer Lösungsarchitektur

Die Lösungsarchitektur ausgedrückt werden, haben ich ein Diagramm UML-Paket verwendet.Pfeile zeigen in Richtung der "Abhängigkeit". Z. B. hängt"der CRM E-Mail-Router" einen SMTP-Server und die CRM-Plattform-Webdienste.Eine vollständige Diagramm wäre sehr komplex, aber dies stellt eine grundlegende Objektmodell bereit.

Jetzt können Sie überlegen, wie Microsoft CRM-Komponenten in Ihrem Unternehmen bereitgestellt werden.Für die Zwecke dieses Artikels verwenden wir eine typische Bereitstellung-Architektur, wie in Abbildung 2 dargestellt.Verstehen, wie die Systemarchitektur auf die Lösungsarchitektur bezieht ist unerlässlich beim Isolieren von Problemen.Ohne zu wissen, in denen Komponenten ausgeführt werden, konnte Sie verbringen Stunden suchen und Beheben eines Problems, das auch auf dem Computer geschieht ist nicht behoben werden soll!

fig02.gif

Abbildung 2 eine typische Bereitstellung-Architektur

Boden-Regeln

Bevor Sie die Behandlung eines Problems mit CRM beginnen, müssen Sie ein paar grundlegende Problembehandlung Prinzipien zu verstehen.Erstens lassen Sie uns einen grundlegenden Workflow für die Problembehandlung und einige Richtlinien für wie Sie, wann es sicher auf die nächste Schritt fortsetzen ist durchgehen.

1.Ein Problem oder Fehler identifiziert und reproduziert.

  • Haben Sie das Problem identifiziert, und gelesen Sie die Fehlermeldung haben?
  • Ist die Fehlermeldung generische?Wenn dies der Fall ist, haben Sie nach den "echten Fehler" Schritte?Hinweis: Wenn der Fehler lautet Bedenken wenden Sie sich „ etwas passiert an Ihren Systemadministrator,"Sie, dass Sie sind wahrscheinlich der Systemadministrator und müssen daher Weitere Tiefgang, um den tatsächlichen Fehler zu finden.Bevor Sie mit Schritt 3 verschieben, müssen Sie sein sicher, dass Sie mit den tatsächlichen Fehler zu tun haben.

2.Das Problem muss verstanden werden.

  • Sie lesen und verstehen, was die Fehlermeldung sagen ist?
  • Haben Sie einen konsistenten Satz von Schritte zum Reproduzieren des Problems zuverlässig?

3.Das Problem muss isoliert werden.

  • Welche Systeme in Ihrem System Architecture kann als eine Ursache ausschließen oder auf das Problem beeinflussen?
  • Welche Komponenten der Architektur der Lösung kann als eine Ursache ausschließen oder auf das Problem beeinflussen?

4.Das Update muss identifiziert und verstanden werden.

  • Können Sie Unterstützung-Artikel, Blogbeiträge oder Newsgroupbeiträgen, die Korrekturen vorschlagen, die für das genaue Problem gelten suchen?
  • Bevor ein Update kennen Sie, warum Sie das Problem behoben werden?

5.Das Update muss angewendet und überprüft werden.

  • Beheben das angewendete Update das Problem?Sie müssen zu reproduzieren des Problems (Schritt 2), um sicher zu sein können.Da Sie das Update verstanden haben, haben Sie anderen Bereichen des Systems re-tested, die möglicherweise betroffen sein?

Server-Problembehandlung

Mit Kenntnisse des Problembehandlungsprozess können wir nun zu den Tools für die Diagnose von Problemen in Microsoft CRM benötigt auf verschieben.

DevErrors – bei Microsoft CRM sendet Daten an den Server, Informationen an ASP.NET übergeben und verarbeitet.Alle Fehler werden durch einen globalen Ausnahmehandler auf der Ebene von ASP.NET behandelt.Benutzerfreundlichkeit sowie manchmal aus Sicherheitsgründen der tatsächliche Fehler vom Aufrufer (das Sie oder Ihre Benutzer) ausgeblendet, und "pretty Fehler" wird angezeigt.Normalerweise lautet dieser Fehler etwa "Sie verfügen nicht über ausreichende Berechtigungen"oder "der angeforderte Datensatz wurde nicht gefunden". Leider stammen diese pretty Fehler aus einer „ weiße Liste". Die Hunderttausende von Fehlern, die von CRM ausgelöst werden könnte oder alle verwandten Komponenten (SQL, STANDORTREPLIKATIONSDIENST, .NET, Windows und usw.), nur Fehler haben Codes, die der CRM-Team Gedanke auftreten eine hübsche diese zugeordnete Zeichenfolge.Der Rest erhalten von gefürchtete Catchall behandelt "Wenden Sie sich ist ein Fehler aufgetreten, an bitte Ihren Systemadministrator." Dies ist natürlich nicht viel verwenden Sie den Systemadministrator.

Da eine unserer Grundregeln um echten Fehler abzurufen, müssen Sie in der Lage mitzuteilen, wann CRM liegenden oder zumindest nicht informiert die ganze Wahrheit.Die Wahrheit Serum besteht darin, DevErrors über die Datei web.config zu aktivieren.Dies erfolgt durch Ändern der [CRMWEB]\web.config Datei wie folgt:

<add key="DevErrors" value="On"/>

Müssen Sie unbedingt die Systemarchitektur Bedenken dabei.Wenn Sie auf zwei Servern in einer Umgebung mit Lastenausgleich konfiguriert haben, möchten Sie Isolieren des Servers, wo der Fehler geschieht, oder Alternativ müssen Sie DevErrors auf beiden Servern zu aktivieren.Sobald die DevErrors aktiviert ist, werden Fehler angezeigt, die wie in Abbildung 3 aussehen.

Abbildung 3 eine Microsoft CRM-Fehlerberichterstattung

Abbildung 3Zeigt mehrere Elemente auf der linken Seite, die unterschiedliche Informationen bereitstellen:

Die detaillierte Fehler – der erste Bildschirm (Standardwert) zeigt Ihnen die echten Fehler von Microsoft Dynamics CRM der Sicht.Diese enthält den Date, Time und Server Namen, die an der der Fehler aufgetreten, ist sowie die Fehlerbeschreibung, Aufrufliste, Fehlernummer (falls verfügbar), der Quelldatei und Zeilennummer, in dem der Fehler (falls verfügbar) aufgetreten ist, und die URL, die angefordert wurde – alle nützlich beim herausfinden, welche Fehler aufgetreten sind.

Der ASP.NET Fehler – das nächste Element ist der tatsächliche Fehler aus der Perspektive des ASP.NET.Dies bietet viel dieselbe Informationen wie den CRM-Fehler, jedoch die Optionen hinzugefügt "Detaillierte Compilerausgabe anzeigen" und "Show abgeschlossen Komplikation Source".

Diagnostische Informationen – der dritten Bildschirm in Abbildung 4 dargestellt bietet grundlegende Informationen über den Server, an welcher Stelle der Fehler aufgetreten ist und Details zu den Clients und Benutzer, der die Anforderung gestellt.Hierzu zählen Server-Betriebssystem, .NET Runtime-Version, Servernamen und den Pfad zu dem CRM installiert ist.Informationen zu den bestimmten CRM-Datenbank verwendet und Einstellungen in der Datei web.config ist auch enthalten.Für den Client zeigt den Bildschirm die Version des Browsers, Bildschirmauflösung, Farbtiefe und vieles mehr.Informationen auf dem anfordernden Benutzer (zumindest aus der CRM zeigen der Ansicht) umfasst des Benutzers Domäne und Namen, CRM-Benutzernamen, CRM-Benutzer-ID, Business Unit ID und Organisation ID.

Abbildung 4 die Diagnose Info-Bildschirm

Was der Benutzer Seen haben möchten– Das letzte Element, das im angezeigtAbbildung 5, können Sie aus der Perspektive der Endbenutzer sehen, wie wenn DevErrors deaktiviert wurden.

Abbildung 5 die Fehlermeldung der Benutzer Seen haben möchten

Bitte beachten Sie, dass DevErrors nur mit Fehlern, die während der Verarbeitung einer Webanforderung Anwendung auftreten kann und ausschließlich Anforderungen, die eine vollständige Seite betreffen an den Server senden.AJAX-Anforderungen, z. B. mit einer Veröffentlichung von Anpassungen, einen Workflow oder eine Aktion Raster nicht DevErrors unterstützt.Für diese müssen Sie die Ablaufverfolgung verwenden.

TIPP:Wenn die Informationen auf der Seite DevErrors wird abgeschnitten, und Sie können nicht im Fenster, um weitere anzusehen, deren Größe ändern, doppelklicken Sie einfach an einer beliebigen Stelle auf der Seite und in der Größe veränderbares Fenster wird geöffnet.

Ablaufverfolgung – Wenn ein CRM-Fehler außer aus eine direkte Webanforderung die beste Möglichkeit um echten Fehler abzurufen, die mit CRM-Ablaufverfolgung ist eine beliebige Stelle geschieht.Ablaufverfolgung kann aktiviert und durch die Schritte in der Artikel "How to Aktivieren der Ablaufverfolgung in Microsoft Dynamics CRM" unter support.microsoft.com/kb/907490 konfiguriert werden.Oder Sie können ein Tool wie CrmDiagTool, Feld erhältlich.NET/shared/6oxfqi2ida.

TIPP:"Ablaufverfolgung Directory" wird in CRM 4.0 ignoriert.

Ablaufverfolgung möglich Kostüm für Anfänger, damit frustriert nicht.Im Allgemeinen sollte die Ablaufverfolgung verwendet werden, nur, wenn ein Problem beheben.Je nach Ablaufverfolgung Konfiguration kann es eine erhebliche Leistungseinbußen bei der Ausführung, und wenn Sie die ausführliche Protokollierung auf haben, kann einem stark ausgelasteten System problemlos die Hunderte von MB der Protokolle pro Stunde erstellen.Im oben erwähnte Artikel bietet eine detaillierte Erläuterung aller Möglichkeiten, Ablaufverfolgung und zum Aktivieren der Ablaufverfolgung für Client und Server zu konfigurieren.

TIP: Wenn Sie Mailing, Ablaufverfolgungsprotokolle für Hilfe müssen Sie diese zuerst komprimieren.Protokolldateien werden nur Text und in der Regel 90 Prozent oder mehr komprimiert.

Protokoll Datei Struktur – Wenn die Ablaufverfolgung auf dem Server aktiviert ist, in der Ablaufverfolgung-Ordner befindet Protokolle platziert, in dem Sie CRM installiert.Jeder Dienst hat eine eigene Protokolldatei jede Datei in der Standardeinstellung wächst und auf 10 MB bevor eine neue Datei gestartet wird.Da die Protokolldateien aktiv, durch die verschiedenen CRM Prozesse geschrieben werden, erhalten Sie nicht die absoluten aktuellste Ablaufverfolgungsinformationen, bis der entsprechende Dienst (IIS oder Async Service) beendet wird.Wenn Sie den Ordner öffnen sehen Dateien wie z. B. Sie

-CRMDEV-VPC-CrmAsyncService-bin-20090415-1.log

-CRMDEV-VPC-w3wp-CRMWeb-20090415-1.log

Die Namenskonvention lautet [Computer-NAME] – [CRM PROCESS] – [YEAR MONTH DAY] – [SEQUENCE] .log

Die Protokolldatei enthält lädt Informationen, mit Elementen in chronologischer Reihenfolge geschrieben.Beachten Sie, dass das Protokoll der Ablaufverfolgung das neueste Ereignis am unteren Rand der Datei schreibt, während in einer Aufrufliste Elemente geschrieben werden in umgekehrter chronologischen Reihenfolge (neueste Element first).

TIPP:Bei der Suche nach Fehler im Protokoll suchen Sie nach ": Fehler" (ein Doppelpunkt gefolgt von dient und Fehler.

Ereignisprotokoll – die Windows-Ereignisprotokoll ist einem anderen Ort, um nach Fehlern suchen, die in Microsoft CRM, dessen abhängigen Komponenten oder anderen Bereichen des Systems auftreten.Wie das Ablaufverfolgungsprotokoll wird im Ereignisprotokoll i. d. r. Weitere Informationen über Fehler bereit, die innerhalb des Systems auftreten.

Microsoft CRM wird nicht alle Fehler in der Ereignisanzeige protokolliert.Beispielsweise ist ein deaktivierter Benutzer anmelden möchten protokolliert, während ein Versuch, einen Datensatz zu aktualisieren, der nicht mehr vorhanden ist nicht angemeldet ist.Obwohl diese dokumentiert nicht ist, protokolliert CRM Fehler in das Ereignisprotokoll aus der folgenden Subsysteme:

-MSCRMPerfCounters

-MSCRMPlatform

-MSCRMKeyArchiveManager

-MSCRMKeyGenerator

-MSCRMEmail

-MSCRMDeletionService

-MSCRMReporting

-MSCRMWebService

-MSCRMAsyncService

-ASP.NET 2.0

ASP.NET 2.0-Bucket fungiert als "catch eine die meisten" für Application Layer Fehler.Darüber hinaus verfügt der Dynamics CRM E-Mail-Routerdienst eigene Ereignisprotokoll (MSCRMEmailLog), die sich eine Vielzahl von Informationen, Warnungen und Fehler unabhängig voneinander konfiguriert werden können.

Da Ereignisprotokollierung nicht muss aktiviert werden, ist es ein guter Start Platz, um nach Problemen suchen.

Lesen Sie eine Aufrufliste – Aufruf-Stacks kommen in allen Formen und Größen und allzu oft durch Nondeveloper Ratgeber übersehen werden.Es ist nicht unüblich, dass Systemtechniker einfach "ignorieren die Entwickler Dinge" und nur die Fehlermeldung oder den Code untersuchen.Es wird empfohlen, dass Sie dies nicht tun –, obwohl die Aufrufliste Code aussieht, es soll Menschen lesbar und mitteilen, wo nach rechts bis der Fehler aufgetreten.Betrachten Sie das folgende Beispiel aus:

[ReportServerException: The Report Server Windows service 'ReportServer' is not running. 
   The service must be running to use Report Server. (rsReportServerServiceUnavailable)]
   at Microsoft.Reporting.WebForms.ServerReport.SetDataSourceCredentials(DataSourceCredentials[]credentials)
   at Microsoft.Crm.Web.Reporting.SrsReportViewer.SetExecutionCredentials(ServerReport report)

[CrmReportingException: The Report Server Windows service 'ReportServer' is not running. 
The service must be running to use Report Server. (rsReportServerServiceUnavailable)]
   at Microsoft.Crm.Web.Reporting.SrsReportViewer.SetExecutionCredentials(ServerReport report)
   at Microsoft.Crm.Web.Reporting.SrsReportViewer.ConfigurePage()
   at Microsoft.Crm.Application.Controls.AppUIPage.OnPreRender(EventArgs e)
   at System.Web.UI.Control.PreRenderRecursiveInternal()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Was Sie hier sehen, ist eine Liste aller Dinge, die das System hat (Aufrufe) in umgekehrter chronologischer Reihenfolge (Stack) bis letztes es "versucht" aufgeführt.In diesem Fall zunächst, die stattgefunden, der Aufruf am unteren Rand der Stapel – wurde von ein Aufruf von System.Web.UI.Page.ProcessRequestMain().

Wenn Aufruflisten zu lesen, ist es wichtig, den Namen jeder Aufruf zu lesen.Für jeden Aufruf aufgeführt sind die Wörter zwischen den letzten Punkt und der Klammer den Namen der Methode.Wörter vor dem Methodennamen, dem Namespace und die Elemente innerhalb der Klammern, die Parameter sind.In diesem Fall die Methode ProcessRequestMain wurde aufgerufen zuerst; diese Methode ist im Namespace System.Web.UI.Page; und diese Methode zwei Boolean (True/False) Parameter erwartet.Sofort, durch das Lesen der Namespace, wir wissen, dass dieser Aufruf kein Microsoft CRM-Code ist; diese tatsächlich Code in Basis .NET Framework (gekennzeichnet durch den System-Root-Namespace) und insbesondere aufgerufen zu ASP.NET (gekennzeichnet durch den Web-Namespace).Wir "oben" im Stapel zu lesen, sehen wir, dass ProcessRequestMain anschließend PreRenderRecursiveInternal, aufgerufen, die dann OnPreRender aufgerufen.Die OnPreRender-Methode ist die erste Methode, die tatsächlich ein Bestandteil der Microsoft CRM Codebasis, ist, wie durch den Microsoft.Crm Namespace gekennzeichnet.Wie wir die Aufrufliste nach oben fortsetzen, sehen wir, dass CRM tatsächlich in die SQL Reporting Services-Methode SetDataSourceCredentials aufruft.Diese Methode löst dann eine Ausnahme vom Typ ReportServerException mit dem Fehler, den den Berichtsserver nicht ausgeführt wird.Wie Sie sehen können, durch Lesen der Aufrufliste können Sie feststellen, dass dieser Fehler nicht von CRM stammt, aber stattdessen von SQL Server Reporting Services (SSRS stammt) und dann wird "einrichten" über CRM als eine CrmReportingException weitergegeben wird.Basierend auf der-Systemarchitektur, müssen Sie ermitteln, wo SSRS ausgeführt wird, damit Sie wissen, wo zu wechseln, den Dienst zur Behebung des Problems starten.

Aufruflisten auf diese Weise lesen, können Sie isolieren, die dem Fehler tatsächlich stammt.Der letzte Aufruf im Stapel möglicherweise etwas YourCompany.Crm.Extensions.UpdateRecord(); Dadurch würden angewiesen, die der Fehler entweder von den Entwicklern geschriebenen Code kommen Sie vielleicht eine ISV Lösung, die Sie erworben haben.

Es ist nicht unüblich, dass CRM Fehler tatsächlich von SQL Server im Fall von referenzielle Integrität (RI) oder anderen SQL-Ebenen-Einschränkungen oder aus der .NET Framework selbst stammen.

Zu Hause Beispiel wiedergeben

Jetzt wir Gelegenheit Sie zuhause wiedergeben.Angenommen, Sie haben einen neuen Benutzer in CRM erstellt und der Benutzer versucht, das System zum ersten Mal verwenden und ist den Fehler abrufen, wie in Abbildung 6 dargestellt.

fig06.gif

Abbildung 6 ein CRM-Fehler nach einer ersten neue Benutzer erhalten

Welche Schritte würden Sie ausführen, um dieses Problem zu lösen?Um dieses Problem zu beheben, führen Sie wir unsere grundlegende Problembehandlung Workflow.

1.Ein Problem oder Fehler identifiziert und reproduziert.

Sie sollten Benutzer Fragen, was er tun wollte wenn er den Fehler empfangen und dann versuchen, reproduzieren die Schritte, um anzuzeigen, wenn Sie den Fehler neu erstellen können.

2.Das Problem muss verstanden werden.

Wir die Problembehandlung der Sicht der Fehlermeldung lesen: "der angemeldete Benutzer hat keinen entsprechenden Security Berechtigungen."

Um das Problem zu verstehen, müssen Sie zwei Fragen beantworten können: Wer ist "der angemeldete Benutzer"?Welche Sicherheitsberechtigung"" er "nicht haben"?

3.Das Problem muss isoliert werden.

In diesem Fall können Sie beide Fragen beantworten, mithilfe von CRM-Ablaufverfolgung.Sie wissen, dass die Ablaufverfolgung benötigt wird, da diese Fehlerseite in einem Dialogfeld und nicht die Informationen bietet, dass DevErrors würde.CRM protokolliert keine Fehler sieht Recht in der Ereignisanzeige.Wir Ablaufverfolgung aktivieren, und reproduzieren Sie das Problem mit dem gleichen Benutzernamen.Das Trace-Protokoll bietet die ausführliche Fehlermeldung:

MSCRM Error Report:
Error: Exception has been thrown by the target of an invocation.
Error Number: 0x80040220
Error Message: SecLib::CrmCheckPrivilege failed. Returned hr = -2147220960 on UserId: 
  e76c5f50-40b3-dc11-8797-0003ffb8057d and PrivilegeId: 7863e80f-0ab2-4d67-a641-37d9f342c7e3
Error Details: SecLib::CrmCheckPrivilege failed. Returned hr = -2147220960 on UserId: 
  e76c5f50-40b3-dc11-8797-0003ffb8057d and PrivilegeId: 7863e80f-0ab2-4d67-a641-37d9f342c7e3
Source File: Not available
Line Number: Not available
Request URL: https://localhost:5555/AscentiumCrmDev/sfa/accts/edit.aspx?id={906C2F37-8D28-DE11-8D9F-0003FFB23445}
Stack Trace Info: [CrmSecurityException: SecLib::CrmCheckPrivilege failed. Returned hr = -2147220960 on UserId: 
  e76c5f50-40b3-dc11-8797-0003ffb8057d and PrivilegeId: 7863e80f-0ab2-4d67-a641-37d9f342c7e3] at
  Microsoft.Crm.BusinessEntities.SecurityLibrary.CheckPrivilege(Guid user, Guid privilege, ExecutionContext context)
…

Von diesem Fehler und durch den Aufruf Stapel Details lesen sehen Sie sich, dass das Problem durch ein defektes CRM überprüfen Berechtigungen verursacht wird. Sie sehen, die GUID des Benutzers, der der Anforderung sowie die GUID der Berechtigung, die er versucht, zu verwenden.

Wenn Sie eine Live-Suche auf die Berechtigungen 7863e80f-0ab2-4 d 67-a641-37d9f342c7e3 durchführen, ist der erste Zugriff das Microsoft CRM-SDK.

Nach diesen Link sehen Sie sich, dass die Berechtigung des Benutzers muss ist PrvWriteAccount, die Berechtigung, die die Benutzerrechte Update auf der Entität Account gewährt. Die gleiche Methode funktioniert für alle Hunderte von Out-of-the-Box-Privilegien, wie die GUIDs alle bekannt sind. Wenn Sie für die Berechtigungen ID suchen, und es nicht gefunden wurde, die Berechtigung auf einer Ihrer benutzerdefinierten Entitäten möglicherweise, werden in diesem Fall müssen Sie Ihren lokalen SQL Server um herauszufinden, welche Berechtigungen abgefragt angefordert wird. Das folgende Skript werden die gleiche Informationen ergeben:

SELECT PrivilegeId, Name
FROM PrivilegeBase
WHERE PrivilegeId = '7863e80f-0ab2-4d67-a641-37d9f342c7e3'

Nun, Sie wissen, welche Berechtigungen erforderlich ist, müssen Sie nur überprüfen, welcher Benutzer die Berechtigung fehlt. Während Sie manchmal annehmen können, dass der aufrufende Endbenutzer der ist, können nicht Sie immer sicher sein, z. B. wenn die Aktionen über Code, Plug-Ins oder benutzerdefinierte Erweiterungen ausgeführt werden. In solchen Fällen sollten Sie eine Abfrage nach den Namen des Benutzers CRM betrachtet versucht hat, verwenden Sie die Berechtigung. Das folgende Skript verarbeitet diese:

SELECT SystemUserId, DomainName
FROM SystemUserBase
WHERE SystemUserId = 'e76c5f50-40b3-dc11-8797-0003ffb8057d'

TIP: Wenn der Benutzer GUID nur Nullen (00000000-0000-0000-0000-000000000000) ist, der Benutzer ist wahrscheinlich das Systemkonto und das bedeutet der aufrufende Benutzer wahrscheinlich ein Konto wie Netzwerkdienst wurde. Systemkonten erhalte nicht in der Regel CRM Sicherheitsrollen; stattdessen erhalten Sie erhöhte Rechte über die PrivUserGroup in Active Directory.

4. Das Update muss identifiziert und verstanden werden.

Sie können jetzt in CRM und Kontrollkästchen, welche Rollen der Benutzer verfügt, gehen in dargestellten Abbildung 7 .

fig08.gif

Abbildung 7 Benutzerrollen in CRM

Sie können dann Drilldown und finden Sie, dass die Rolle "Verkäufer tatsächlich den Schreibzugriff auf Konto Berechtigung fehlt, wie im Abbildung 8 .

fig09.gif

Abbildung 8 Kerndatensätze der Verkäufer-Funktion des zeigt es fehlt die Berechtigung Schreiben unter Konto.

5. Das Update muss angewendet und überprüft werden.

Um das Problem zu beheben, müssen Sie lediglich weisen Sie die Berechtigung Schreiben zu dieser Rolle und zu speichern. Achten Sie sollten Sie unbedingt das andere Benutzer kennen dies auswirkt. Wenn Sie das Update angewendet haben, können Sie bitten den Benutzer erneut überprüfen, ob das Problem behoben wurde. Dann sollten Deaktivieren der Ablaufverfolgung und rufen Sie die Anfrage geschlossen.

Umbrechen von

Problembehandlung bei Microsoft CRM bedeutet, dass folgende grundlegende Grundregeln und eine Methodik, die das eigentliche Problem identifizieren, einschränkende Bereich, das Problem isolieren und verstehen das Update enthält. Die DevErrors, Ereignisprotokollierung und Ablaufverfolgung Tools finden in Microsoft Dynamics CRM in Ihre Bemühungen zur Problembehandlung von entscheidender Bedeutung Sie.

Er elder (Microsoft Dynamics CRM MVP) funktioniert für Ascentium, eine Technologie Beratung und interaktive marketing Agentur. Besuchen Sie den Ascentium Blog unter Ascentium.com/Blog/CRM.