ApplicationPoolIdentity IIS 7.5 ke SQL Server 2008 R2 tidak berfungsi

11

Saya memiliki skrip uji ASP.NET kecil yang membuka koneksi ke database SQL Server pada mesin lain di domain. Ini tidak berfungsi dalam semua kasus.

Mempersiapkan:

IIS 7.5 di bawah W2K8R2 mencoba menyambung ke contoh SQL Server 2008 R2 jarak jauh. Semua mesin berada di domain yang sama.

Menggunakan ApplicationPoolIdentity untuk situs web itu gagal terhubung ke SQL Server dengan yang berikut:

Gagal masuk untuk pengguna 'NT AUTHORITY \ ANONYMOUS LOGON'. Deskripsi: Pengecualian yang tidak ditangani terjadi selama eksekusi permintaan web saat ini. Harap tinjau jejak tumpukan untuk informasi lebih lanjut tentang kesalahan dan dari mana asalnya dalam kode.

Detail Pengecualian: System.Data.SqlClient.SqlException: Gagal masuk untuk pengguna 'NT AUTHORITY \ ANONYMOUS LOGON'.

Namun jika saya mengganti Proses Model Identity ke NETWORK SERVICE atau akun domain saya koneksi basis data berhasil.

Saya telah memberikan \ $ akses di SQL Server.

Saya tidak melakukan semacam otentikasi di situs web, itu hanya sebuah skrip sederhana untuk membuka koneksi ke database untuk memastikan itu berfungsi.

Saya memiliki Autentikasi Anonim diaktifkan dan diatur untuk menggunakan identitas kumpulan Aplikasi.

Bagaimana saya membuat ini bekerja? Mengapa ApplicationPoolIdentity mencoba menggunakan LOGON ANONIM? Lebih baik lagi, bagaimana cara membuatnya berhenti menggunakan log masuk Anonim?

Mendongkrak
sumber
1
Anda selalu bisa mengatur identitas AppPool sebagai LAYANAN JARINGAN.
JohnThePro

Jawaban:

4

Saya memiliki masalah yang sama juga. Per halaman ini , ApplicationPoolIdentity seharusnya mengakses sumber daya jaringan sebagai akun mesin (DOMAIN \ COMPUTERNAME $), tetapi menggunakan NT AUTHORITY \ ANONYMOUS LOGON untuk mengakses SQL server.

Saya bisa menggunakan perbaikan terbaru ini untuk membuat ApplicationPoolIdentity berfungsi seperti yang dikatakan oleh dokter. Perbaikan terbaru ini tidak secara khusus menjelaskan solusi untuk mengakses sumber daya jaringan sebagai NT AUTHORITY \ ANONYMOUS LOGON, tetapi ini terkait dengan perubahan kata sandi komputer.

Urutan stackoverflow ini membantu saya menemukan solusi ini:

Kiat bermanfaat lainnya untuk debugging identitas ASP.NET dan identitas SQL

Karena SQL integrated auth terkait dengan identitas utas, berguna untuk dapat melihat identitas pengguna Anda, utas identitas (yang berubah tergantung pada peniruan), dan login server SQL. Cuplikan ASPX ini menampilkan ketiganya:

<%@ 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" />
crimbo
sumber
2

Saya memiliki masalah yang sama persis. Saya mencabut rambut saya selama beberapa jam dan akhirnya me-reboot mesin. Masalahnya hilang! Perhatikan bahwa me-restart IIS melalui iisreset JANGAN menyelesaikan masalah. Itu hanya hilang ketika saya me-restart server.

xparrot
sumber