ApplicationPoolIdentity IIS 7.5 - SQL Server 2008 R2 çalışmıyor


11

Etki alanındaki başka bir makinede bir SQL Server veritabanına bağlantı açan küçük bir ASP.NET sınama komut dosyası var. Her durumda işe yaramıyor.

Kurmak:

W2K8R2 altındaki IIS 7.5, uzak bir SQL Server 2008 R2 örneğine bağlanmaya çalışıyor. Tüm makineler aynı alandadır.

Web sitesi için ApplicationPoolIdentity'yi kullanarak SQL Server'a aşağıdakilerle bağlanamaz:

'NT AUTHORITY \ ANONYMOUS LOGON' kullanıcısı için oturum açılamadı. Açıklama: Geçerli web isteğinin yürütülmesi sırasında işlenmeyen bir özel durum oluştu. Hata ve kodun nereden kaynaklandığı hakkında daha fazla bilgi için lütfen yığın izlemesini inceleyin.

Özel Durum Ayrıntıları: System.Data.SqlClient.SqlException: 'NT AUTHORITY \ ANONYMOUS LOGON' kullanıcısı için oturum açma başarısız oldu.

Ancak, İşlem Modeli Kimliğini AĞ HİZMETİ veya etki alanı hesabım olarak değiştirirsem veritabanı bağlantısı başarılı olur.

SQL Server'da \ $ erişimine izin verdim.

Web sitesinde herhangi bir kimlik doğrulama yapmıyorum, sadece çalıştığından emin olmak için bir veritabanına bağlantı açmak için basit bir komut dosyasıdır.

Anonim Kimlik Doğrulaması etkin ve Uygulama havuzu kimliğini kullanmak üzere ayarlanmış.

Bunu nasıl yapabilirim? ApplicationPoolIdentity neden ANONYMOUS LOGON'u kullanmaya çalışıyor? Daha da iyisi, Anonim oturum açmayı kullanmayı nasıl durdurabilirim?


1
Her zaman AppPool kimliğini AĞ HİZMETİ olarak ayarlayabilirsiniz.
JohnThePro

Yanıtlar:


4

Ben de aynı sorunu yaşadım. Gereğince bu sayfayı , ApplicationPoolIdentity makine hesabı (DOMAIN \ COMPUTERNAME $) olarak ağ kaynaklarına erişmek gerekiyordu, ama bunun yerine erişim SQL sunucusuna NT AUTHORITY \ ANONYMOUS LOGON kullanıyordu.

Doc düzeltmesi gerektiği gibi ApplicationPoolIdentity çalışma almak için bu düzeltmeyi kullanabildi . Bu düzeltme, ağ kaynaklarına NT AUTHORITY \ ANONYMOUS LOGON olarak erişmek için özel olarak bir çözüm tanımlamamaktadır, ancak bilgisayar parolasının değiştirilmesi ile ilgilidir.

Bu yığın akışı iş parçacığı bu çözümü bulmama yardımcı oldu:

ASP.NET kimliği ve SQL kimliğinin hata ayıklaması için diğer yararlı ipuçları

SQL tümleşik kimlik doğrulaması iş parçacığı kimliği ile ilgili olduğundan, kullanıcı kimliğinizi, iş parçacığı kimliğinizi (kimliğe bürünme durumuna bağlı olarak değişir) ve SQL sunucusu oturum açma bilgilerini görüntülemeniz yararlı olur. Bu ASPX snippet'i üçünün tümünü görüntüler:

<%@ Import Namespace="System.Security.Principal" %>

<div>ASP.NET Request User identity: <%= User.Identity.Name %></div>
<div>Current thread/process WindowsIdentity: <%= WindowsIdentity.GetCurrent(false).Name %></div>
<asp:SqlDataSource ID="CurrentUserData" runat="server" ConnectionString="<%$ ConnectionStrings:ConnID %>"
           SelectCommand="select SYSTEM_USER" />
<asp:DetailsView DataSourceID="CurrentUserData" runat="server" />

2

Aynı sorunu yaşadım. Birkaç saat saçımı çıkardım ve sonunda makineyi yeniden başlattım. Sorun ortadan kalktı! IIS'yi iisreset ile yeniden başlatmanın sorunu çözmediğini unutmayın. Sadece sunucuyu yeniden başlattığımda gitti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.