Provider type not defined

SharePoint 2013 ortamında daha sık olmak üzere SharePoint 2016 ortamlarında da karşımıza çıkan bir hata ve çözümünden bahsetmek istiyorum. Normal şekilde çalışan bir SharePoint farmınızda bazen sadece tek bir uygulamayı (veya bazen birden fazla uygulamayı) etkiler şekilde aşağıdaki gibi bir hata mesajı ile karşılaşabilirsiniz.


SPSecurityContext: Get trust client failed with exception: System.IO.FileLoadException: Could not load file or assembly ‘Microsoft.IdentityModel.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=69c3241e6f0468ca’ or one of its dependencies. Provider type not defined. (Exception from HRESULT: 0x80090017)  File name: ‘Microsoft.IdentityModel.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=69c3241e6f0468ca’ —> System.Runtime.InteropServices.COMException (0x80090017): Provider type not defined. (Exception from HRESULT: 0x80090017)  at Microsoft.SharePoint.SPSecurityContext.GetTrustChannel()  at Microsoft.SharePoint.SPSecurityContext.SecurityTokenForContext(Uri context, Boolean bearerToken, SecurityToken onBehalfOf, SecurityToken actAs, SecurityToken delegateTo, SPRequestSecurityTokenProperties properties)

An exception occurred when trying to establish endpoint for context: Could not load file or assembly ‘Microsoft.IdentityModel.Extensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=69c3241e6f0468ca’ or one of its dependencies. Provider type not defined. (Exception from HRESULT: 0x80090017).


Hatanın temel nedeni uygulamanın application pool’u için kullandığınız hesabın “Impersonate a client after authentication” hakkını kaybetmiş olmasını söyleyebiliriz. Bu nedenle de çözümü bu hakkı yeniden vermek olacak. İşlemi gerçekleştirmek için aşağıdaki adımları takip edebilirsiniz.

  • Start > Administrative tools > Local Security Policy > Local Policies > User Right Assignments > Impersonate a client after authentication adresine gidin.
  • Application pool hesabını buraya ekleyin.
  • Sunucuyu yeniden başlatın.

Sorununuz çözülmüş olacaktır. Durumu anlık olarak kurtarmak için bir trick ise bu işlemi daha sonra yapmak üzere geçici olarak sunucuda iisreset komutunu çalıştırmış olmanız da uygulamanın yeniden çalışır hale gelmesini sağlayacaktır.

No Comments

Leave a Comment

Please be polite. We appreciate that.
Your email address will not be published and required fields are marked