MDS Sürümü Doğrula komutu SQL Server 2012 ve SQL Server 2014'te sunucu hatasıyla başarısız oluyor

Bu makale, Ana Veri Hizmetleri (MDS) Sürümü Doğrula komutunun SQL Server 2012 ve SQL Server 2014'te sunucu hatasıyla başarısız olduğu sorunu çözmenize yardımcı olur.

Orijinal ürün sürümü: SQL Server 2012, SQL Server 2014
Özgün KB numarası: 2711671

Belirtiler

Aşağıdaki senaryoyu inceleyin:

  • Yönetici Microsoft SQL Server 2012 veya SQL Server 2014 MDS'yi yükler ve ardından yeni bir uygulama havuzu hesabı kullanarak MDS web sitesini dağıtır.

  • Daha sonra MDS web sitesine göz atacak ve ardından şu adımları izleyeceksiniz:

    1. Sürümleri Yönet sayfasına tıklayın.

    2. Üst araç çubuğunda Sürümü Doğrula komutuna tıklayın.

    3. Model için Doğrula onay kutusunu seçersiniz.

    4. Bu sürümü doğrulamak istediğinizden emin misiniz? istemini onaylayıp Tamam'a tıklayın.

Bu senaryoda, tarayıcı penceresinde aşağıdaki hata iletisini alırsınız:

'/' Uygulamasında Sunucu Hatası.
'ValidationGetRequest' ileti isteği türü işlenirken bir hata oluştu. Daha fazla bilgi için özel durum ayrıntılarına bakın.
Açıklama: Geçerli web isteğinin yürütülmesi sırasında işlenmeyen bir özel durum oluştu. Hata ve kodun kaynağı hakkında daha fazla bilgi için lütfen yığın izlemesini gözden geçirin.
Özel Durum Ayrıntıları: Microsoft.MasterDataServices.WebUI.ServiceAdapterException: 'ValidationGetRequest' ileti isteği türü işlenirken bir hata oluştu. Daha fazla bilgi için özel durum ayrıntılarına bakın.
Kaynak Hatası:
Geçerli web isteğinin yürütülmesi sırasında işlenmeyen bir özel durum oluşturuldu. Özel durumun kaynağı ve konumuyla ilgili bilgiler aşağıdaki özel durum yığını izlemesi kullanılarak tanımlanabilir.
Yığın İzleme:
[ServiceAdapterException: 'ValidationGetRequest' ileti isteği türü işlenirken bir hata oluştu. Daha fazla bilgi için özel durum ayrıntılarına bakın.]
Microsoft.MasterDataServices.WebUI.ServiceAdapter.InspectResponseForErrors(MessageRequest isteği, MessageResponse yanıtı) +687
Microsoft.MasterDataServices.WebUI.ServiceAdapter.ExecuteRequest(MdmServiceOperation 2 işlemi, TRequestType isteği) +75
Microsoft.MasterDataServices.WebUI.ServiceAdapter.GetValidationStatus(Int32 versionInternalId, Null atanabilir 1 entityInternalId, Nullable 1 memberType, String notificationUserName, IList 1 memberIds, Boole omitSummary, Boolean omitIssuesList, Int32 pageNumber, Int32 pageSize, String sortColumn, SortDirection sortDirection) +678
Microsoft.MasterDataServices.WebUI.ServiceAdapter.GetValidationStatus(Int32 versionInternalId, Int32 pageNumber, Int32 pageSize, String sortColumn, SortDirection sortDirection) +133
Microsoft.MasterDataServices.WebUI.Common.Validations.LoadGrid() +355
Microsoft.MasterDataServices.WebUI.Audit.Dimensions.LoadGrid() +26
Microsoft.MasterDataServices.WebUI.Audit.Dimensions.EvaluateSelectedVersion() +267
Microsoft.MasterDataServices.WebUI.Audit.Dimensions.OnLoad(EventArgs e) +776
System.Web.UI.Control.LoadRecursive() +71
System.Web.UI.Page.ProcessRequestMain(Boole includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064

Not

Özel bir Microsoft .NET Framework uygulaması ValidationGetRequest MDS API sınıfını kullandığında da benzer bir sorun oluşabilir. Bu sorun şu konuda belgelenmiştir: ValidationGetRequest Sınıfı.

Neden

Yeni hesaplara izin verilmediğinden VIEW SERVER STATE bu sorun oluşur.

MDS web sitesi oluşturmak için Master Data Services Yapılandırma Yöneticisi yardımcı programını kullandığınızda, araç sizden uygulama havuzu kimliği için uygulama havuzu kullanıcı hesabı kimlik bilgilerini ister.

Ardından, MDS sunucusu ve veritabanı seçildikten sonra araç hesaba izin verir. Belirtilen uygulama havuzu kimlik bilgisi hesabına belirtilen MDS veritabanında çeşitli izinler verilir ve yerel kullanıcılar grubuna MDS_ServiceAccounts ve mds_exec belirtilen MDS veritabanı kataloğundaki veritabanı rolüne eklenir.

Ancak, VIEW SERVER STATE izin ana veritabanına verilmez. Bazen Windows hesapları SQL Server bu izne sahip olabilir. Ancak, varsayılan olarak yeni hesaplara bu izin verilmez.

İzin, VIEW SERVER STATE kuyruğa alınan arka plan etkinliğinin ilerleme durumunu denetlemek için dinamik yönetim görünümünü (DMV) kullanarak sys.dm_broker_activated_tasks hizmet aracısını sorgulamak için yararlıdır.

MDS web uygulaması, doğrulama ilerleme durumunu denetlemek için exec mdm.udpValidationIsRunning saklı yordamını dahili olarak çalıştırır. Ancak, sorguyu çalıştıran uygulama havuzu kimlik bilgilerinin DMV üzerinde izinleri yoktur ve aşağıdaki hata iletisini alır:

Kullanıcının bu eylemi gerçekleştirme izni yok.

Yordamın içindeki aşağıdaki deyim başarısız olur ve web sayfası işlenmez:

IF EXISTS (SELECT 1 FROM sys.dm_broker_activated_tasks
    WHERE procedure_name = N'[mdm].[udpValidationQueueActivate]')

Geçici Çözüm

Bu sorunu geçici olarak çözmek için sistem yöneticisi sabit sunucu rolünün üyesi olan bir hesabı kullanarak MDS uygulama havuzunu çalıştırmak üzere belirlenen hesaba el ile izin verin.

Örneğin, izinleri el ile vermek için aşağıdaki komutları çalıştırın:

USE Master;

GO

GRANT VIEW SERVER STATE TO <domain\MdsWebAppAccount>;

Not

domain\MdsWebAppAccount yer tutucusu<>, yapılandırmanız için doğru hesabı temsil eder.

Daha fazla bilgi

Bu sorunun izinle VIEW SERVER STATE ilgili olup olmadığını belirlemek için bir SQL Profiler izlemesi çalıştırın ve neden bölümünde açıklandığı gibi deyimleri çalıştırdığınızda aşağıdaki hata iletisini arayın:

Kullanıcının bu eylemi gerçekleştirme izni yok.

Ardından, etkin izinler için hesabı denetleyin ve gerekirse izinleri ekleyin. Bunu yapmak için şu adımları uygulayın:

  1. Management Studio'yu açın ve MDS kataloğunu barındıran SQL Server veritabanı altyapısına bağlanın.

  2. Nesne Gezgini bölmesinde Güvenlik klasörünü genişletin.

  3. IIS MDS uygulama havuzunu çalıştırmak için kullanılan hesabı bulun.

  4. Hesaba sağ tıklayın ve ardından Özellikler'e tıklayın.

  5. Securables sayfasına tıklayın. Alt bölmede Etkili sekmesine tıklayın.

    • Etkin izin VIEW SERVER STATE listeleniyorsa, sorun büyük olasılıkla bu değildir.

    • İzin listelenmiyorsa, Oturum Açma Özellikleri iletişim kutusundaki Açık sekmesine dönün ve ardından hesaba izin vermek için Sunucu Durum İzinlerini Görüntüle onay kutusunu tıklayarak seçin.

Başvurular

Verileri doğrulamak için Ana Veri Yöneticisi web uygulamasını kullanma hakkında daha fazla bilgi için bkz: