Frage

Suche in den Benutzerprofilen funktioniert nicht auf lokalisierten Werten im SharePoint 2013

hi! Ich aus Russland und gestern versuchte ich, Benutzerprofile von Russisch zu suchen. Beispielsweise ist mein Nachname мурадов und der Kontoname ist Demo \ Muradov. Ich kann mich selbst finden, indem ich "Demo", "Muradov", suche, aber ich kann mich nicht von "Мурадов" finden.

Bildbeschreibung eingeben hier Bildbeschreibung hier eingeben

Für die Suche, die ich verwendet habe, Verwalten von Benutzerprofilen von der Seite der Zentraladministration und UserProfileManager.Search () -Methode vom Code. Ich beschloss, herauszufinden, warum es passiert.

ich wurde dekompile microsoft.office.server.userprofiles montage and saw, dass userprofilemanager.search () -Methode die gespeicherte Prozedur dbo.proc_profile_searchuser .

Bildbeschreibung eingeben hier eingeben eingeben Sie das Bildbeschreibung hier eingeben

Benutzer verwalten Profile, die diese Prozedur verwendet werden (ich habe es mit SQL Server Profiler überprüft). Ich habe SQL Server-Profiler verwendet und ein Verfahrensanruf gefunden, es scheint wie zu sein generasacodicetagpre.

und es war interessant, weil generasacodicetagpre.

i Offene Code für dbo.proc_profile_searchuser und beginnen Sie mit der Untersuchung ... und fand, dass es eine Tabelle gibt dbo.profile_search usertermstats , die meinen Nachnamen als '' ??????? ', aber Tabelle dbo.profile_searchUtertables - speichert meinen Nachnamen als ' мурадов '. Ich habe den Wert '???????' geändert ' zu 'мурадов' bei dbo.profile_search usertermstats table and call dbo.proc_profile_searchuser - es wurde mit Suchparameter als 'мурадов' gefunden! userprofileManager.search () und Verwalten von Benutzerprofilen-Seiten wurde auch gefunden. Aber wenn ich mein Profil bearbeite und rette, werden meine Russen-Werte wieder als "???????" sein.

Ich dachte, dieses Problem in der Collation von SQL Server (es war latin1_General_ci_as_ks_ws), und ich entferne SQLServer und installieren mit der Collation cyrillic_general_ci_as. Alle SharePoint-Datenbanken wurden jedoch mit Latin1_General_CI_AS_KS_WS-Collation erstellt.

Jetzt bin ich festgefahren. Ich habe keine Ahnung, was genau ich damit tun sollte, und ich brauche Hilfe.

up. Ich arbeite mit Windows Server 2012 STNDART mit dem russischen Sprachpaket, auch ich setze das russische Gebietsschema in Betriebssystem (sogar ist ich echte Lokale auf Englisch (US) - es hilft nicht, ich versucht)

upd2. i Found Tabelle UserProfileValue, die Profilwerte als SQL_Variant speichern, und wenn diese Spalte in Nvarchar (4000) umgewandelt wird (4000) - gibt es richtige Werte ('мурадов') verwandeln ('??? ???? '). Auch wenn ich es versuche, folgen Wählen Sie 'Мурадов' - Ergebnis als '??????', aber Select n'мурадов '- Ergebnis als' мурадов ' Das Problem noch nicht gelöst.

War es hilfreich?

Lösung

I have found bug related with this behavior. Steps to fix them:

  1. Open [dbo].[proc_Profile_SetSearchUserTerms] procedure
  2. Check @changedValues declaration (varchar)
  3. Alter procedure with
    DECLARE @changedValues TABLE (PropertyValue nvarchar(255), Direction int)
  4. Be happy.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top