'IIS APPPOOL \ ASP.NET v4.0' kullanıcısı için oturum açılamadı


432

Bir web projem var (C # Asp.Net, EF 4, MS SQL 2008 ve IIS 7) ve yerel olarak IIS 7'ye geçirmem gerekiyor (şu anda CASSINI ile iyi çalışıyor).

Yerel olarak IIS'de Default Web Sitebenim dağıtımım var. Hem dağıtımım hem Default Web Sitede havuz ASP.NET v4.0'da (ayarlar için görüntüye bakın) havuz hedefim Web 4 olarak Framework 4'ü hedefliyoruz. Havuz Ayarları Siteyi ziyaret ederken, tarayıcı sayfayı göstermez ve tarayıcının sayfayı indirmesine izin verir.

IIS üzerinde yerel olarak çalışan başka projelerim var ve sorunsuz çalışıyorlar (ancak Entity Framework kullanmıyorlar).

Event Logger'ı kullanarak aşağıdaki hataları görüyorum:

Exception information: 
    Exception type: EntityException 
    Exception message: The underlying provider failed on Open.
   at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)


    Login failed for user 'IIS APPPOOL\ASP.NET v4.0'.
       at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
       at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       at System.Data.SqlClient.SqlConnection.Open()
       at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)

İlgili soru

GÜNCELLEME: Bu sorudaki kaynaklarda arift cevabında açıklandığı gibi MS SQL 2008'de izinlerin el ile verilmesi gerektiğini okuyabilirsiniz. IIS 7.5 ve MS SQL 2008 R2 kullanarak, el ile izin ayarlamak gerekli olmamalıdır.


2
sitesi klasöründe uygulama havuzu kimlik iznine izin verdiniz mi?
Christian

Emin değilim, lütfen bana nasıl yapılacağını söyleyebilir misiniz?
GibboK


aslında, adrift'in dediği gibi, bu bir sql güvenlik sorunu olabilir. AppPool için bir NT Kullanıcı hesabı ayarlamak ve daha sonra bu izni web sitesi klasörüne ve SQL'deki uygun tablolara vermek en iyisidir
Christian

1
@GibboK: Burada kabul edilen cevabı gözden geçirmenizi ve daha uygun bir cevap seçmenizi öneririm. Kabul edilen cevap birçok insanı bir güvenlik kara deliğine yönlendiriyor. Evet çalışıyor. Hayır, bu gerçekten iyi bir fikir değil. Aşağıdan yorumlarımı gör.
harcama

Yanıtlar:


596

SQL Server'a bir bağlantı açmaya çalışmadığı anlaşılıyor.

SQL Server'a bir oturum açmanız IIS APPPOOL\ASP.NET v4.0ve veritabanına izin vermeniz gerekir .

SSMS'de, sunucunun altında Güvenlik'i genişletin, ardından Oturum Açmalar'ı sağ tıklayın ve "Yeni Oturum Açma ..." seçeneğini seçin.

Yeni Oturum Açma iletişim kutusunda, oturum açma adı olarak uygulama havuzunu girin ve "Tamam" ı tıklayın.

resim açıklamasını buraya girin

Daha sonra uygulama havuzu girişine sağ tıklayabilir, Özellikler'i seçebilir ve "Kullanıcı Eşleme" yi seçebilirsiniz. Uygun veritabanını ve uygun rolleri kontrol edin. Sadece seçebildiğinizi düşünüyorum db_datareaderve db_datawriterEF ile bunu yaparsanız saklı yordamları yürütmek için yine de izin vermeniz gerektiğini düşünüyorum. Sen rolleri için ayrıntılarını kontrol edebilirsiniz burada .


8
teşekkürler, ne üzüldüm yaptım, şimdi bu hatayı alıyorum: veritabanı "SiteAdıExtension" giriş tarafından istenen açılamıyor. Giriş başarısız oldu. 'IIS APPPOOL \ DefaultAppPool' kullanıcısı için oturum açılamadı.
GibboK

76
ÇOK ÖNEMLİ: GİRİŞİ ONAYLAMAK İÇİN ARAMAYI TIKLAMAYIN! Onu tanımayacak ama işe yarayacak. Bunu IIS APPPOOL \ SimonsAppPoolName olarak yazmanız yeterlidir. Bu stackoverflow.com/questions/1933134
Simon_Weaver

6
Bunun yerine, bir sonraki yanıtta açıklandığı gibi, 'Kimlik'i' IIS'den 'LocalSystem' olarak değiştirmek daha iyidir.
Altaf Patel

SQL Server örneğiniz IIS ana makinenizden sonra başka bir ana makinede olduğunda çalışabilir mi? Çünkü aynı sorunu düzeltmem gerekiyor, ancak SQL ve IIS aynı makinede değil. Yani bu yeni kullanıcı için Windows Kimlik Doğrulaması'nı kullanmayacaksınız
Segers-Ian

5
Benim için ekleyeceğim kullanıcı 'IIS APPPOOL \ DefaultAppPool' idi. Sonra işe yaradı.
Marcel

343

ApplicationPoolIdentity'yi IIS7 -> Uygulama Havuzları -> Gelişmiş Ayarlar'dan değiştirebilirsiniz. Gelişmiş Ayarlar

ApplicationPoolIdentity altında yerel sistem bulacaksınız. Bu, uygulamanızın NT AUTHORITY\SYSTEMvarsayılan olarak veritabanı için var olan bir oturum açma adı altında çalışmasını sağlar .

Düzenleme: Bu öneriyi uygulamadan önce güvenlikle ilgili sonuçları not etmeli ve anlamalısınız.


51
@GibboK, Güvenlik konusunda endişeleriniz varsa, bunu yapma. Bkz. Technet.microsoft.com/en-us/library/dd378907(v=WS.10).aspx
Jeff Ogata

4
Uygulama havuzunu LocalSystem kimliği olarak çalıştırmanın yanı sıra, "NT AUTHORITY \ SYSTEM" kullanıcısını veritabanı rollerine eşlemem gerekiyordu
Phil

31
Bu kokuyor. Bir web uygulamasına SİSTEM yetkisi vermek felaket için bir reçetedir ve sadece web uygulamanıza değil, tüm barındırma sunucusuna kötülük yapma fırsatı yaratır. DB'nin SYSTEM'den girişleri kabul etmesi, web uygulamanızı SYSTEM olarak çalıştırmanız gerektiği anlamına gelmez. Windows masaüstü SİSTEM olarak çalışmanıza bile izin vermez (kasnaklardan atlamaksızın). Bu yetkiyle bir web uygulaması çalıştırmak gerçekten, çok aptalca bir fikir. DB'nin geçerli apppool kimliğini kabul etmesini sağlamalısınız. Yapabilseydim -100 olurdu. -1.
harcayan

8
SYSTEM, Yönetici'den daha ayrıcalıklıdır. Sen gerektiğini ASLA bu seviyede yaklaşan bir şeyle web sunucusu çalıştırmak.
slugster

1
Guest hesabını Yönetici grubunun bir üyesi yapıyorum. Basit, temiz, güvenlik saçmalıklarıyla ilgili herhangi bir sorun yaşamayın.

29

sahip olduğunuzdan emin olun ...

Trusted_Connection=false;

bağlantı dizenizde


7
Bağlantı dizesinde Trusted_Connection = true değerine sahip olmak, SQL kimlik doğrulama değerlerini IIS Kimliği kullanıcı profiliyle geçersiz kılar.
Ayı Jeff

2
benim durumumda kaldırma: Integrated Security = Bağlantı dizesinden True düzeltildi.
Carlos R Balebona

Benim için çalıştı. @JefftheBear
D_Edet

26

Aşağıdaki görüntü olarak sql kullanarak bu sorunu çözdü.

Db-> özellikler -> izin -> Sunucu iznini görüntüle -> seçeneğine sağ tıklayın ve ardından IIS APPPOOL\ASP.NET v4.0izin verin.

db


Yukarıdaki işlem (ve görüntü) bu Uygulama Havuzu Kimliğine VERİLEN Sunucu Düzeyi izinlerini açıklıyor musunuz? İyi bir fikir gibi gelmiyor.
Chris Walsh

2
Bu kullanıcı madalyayı hak ediyor! Bundan başka hiçbir şey yardımcı olmadı!
Khateeb321

2
@ Khateeb321 kesinlikle, cevabınız için çok DevT teşekkür ederim.
Azxdreuwa

22

Bu sql betiğini çalıştır

IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
    CREATE LOGIN [IIS APPPOOL\DefaultAppPool] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [WebDatabaseUser] 
  FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'WebDatabaseUser'
GO

Teşekkürler, en kolay yolu;) +1
Zolfaghari

11

Varsa bağlantı dizesi belirttiğiniz:

User ID=xxx;Password=yyy

ancak bağlantı dizesinde :

Trusted_Connection=true;

SQL Server, Windows Kimlik Doğrulaması kullanacağından bağlantı değerleriniz yok sayılır ve geçersiz kılınır (IIS, Kimlik kullanıcı profilinde belirtilen Windows hesabını kullanır). burada daha fazla bilgi

Aynı şey bağlantı dizesinde varsa:

 Integrated Security = true;

veya

 Integrated Security = SSPI;

çünkü veritabanı sunucusuna bağlanmak için Windows Kimlik Doğrulaması kullanılacaktır. burada daha fazla bilgi


10

iis'e gidin -> uygulama havuzları -> uygulamada kullanılan uygulama havuzunuzu bulun

resim açıklamasını buraya girin

uygulama için kullanılan uygulama havuzunuzu seçin sağ tıklayın gelişmiş ayarları seçin

resim açıklamasını buraya girin

Uygulama havuzu kimliğini seçin resim açıklamasını buraya girin

Yerel Sistem olarak yerleşik'i seçin ve Tamam'a tıklayın


7

ApplicationPoolIdentity'den nefret ediyorum. Her zaman bir Windows Kullanıcı Hesabını AppPools'ta hesap olarak ayarladım.

Adrian'ın dediği gibi, bir veritabanı güvenliği sorunu gibi geliyor. Bu yüzden bir NT kullanıcı hesabı oluşturun, ASP.NET v4.0 AppPool'a atayın ve daha sonra web sitesi klasöründe ve SQL'deki ilgili tablolara izin verin.


özür dilerim, nasıl yapılacağı hakkında hiçbir fikrim yok, bana bir öğreticiyi gösterebilir misiniz? bu konuda yardımınız için teşekkürler
GibboK

2
Bunu yapma, IIS'nin uygulama havuzu kimliğini değiştirmesinin bir nedeni var, learn.iis.net/page.aspx/624/application-pool-identities
Julien Lebot

@ LeSnip3R kırık bağlantı
Adaptabi

6

Entegre Güvenlik kullanmayın. kullanımUser Id=yourUser; pwd=yourPwd;

Bu sorunu çözer.


4

Bu sorun vardı ve aslında farklı bir şey neden oldu - benim veritabanında 'IIS APPPOOL \ ASP.NET v4.0' kullanıcı vardı ama hala çalışmıyor.

Kısa bir süre önce SQL Server Yüklememi yükseltmiştim ve bu süreçte Kullanıcı ile Oturum Açma bağlantısı kesilmişti - bu yüzden Veritabanı altında bir 'IIS APPPOOL \ ASP.NET v4.0' vardı -> Güvenlik -> Kullanıcılar AMA Kullanıcı Güvenlik altında değil -> Girişler.

'IIS APPPOOL \ ASP.NET v4.0' Girişini Güvenlik -> Girişler bölümüne ekledi, SQL Server otomatik olarak veritabanındaki Kullanıcıya eşlendi (bu manuel olarak yapılırdı) ve sorun çözüldü.


1
sadece eklemek için ... sol tarafta, İzinler altında ... db_writer ve db_reader'ı işaretleyin; ve bu izinleri kullanacak olan veritabanını seçin.
benjieb

4

Windows kimlik doğrulaması kullanıyorsanız ve bağlantı dizenizde herhangi bir kullanıcı adı parolasından bahsetmiyorsanız, temizlemeniz gereken ilk şey:

Kodunuzu localhost üzerinden çalıştırdığınızda ne olur: wcf test istemcinizi localhost'tan çalıştırdığınızda, yerel hata ayıklama modu uygulaması hesabınızın hizmeti tarafından veritabanını çağırdığı için veritabanıyla iletişim kurabilecektir. Devenv.exe kullanıcı hesabınız altında çalıştığı için veritabanına erişimi vardır.

Ancak web hizmetinizi IIS'de dağıttığınızda. Şimdi bu hizmetin hesabınız altında değil IIS altında çalıştığını anlayın. Bu nedenle, Windows kimlik doğrulaması için sql sunucusuna erişmek için IIS hizmetine erişim hakları atamanız gerekir. Burada web hizmeti, erişim hakları sorunu ve kullanıcı için Oturum Açma Başarısızlığı nedeniyle SQL sunucusuyla iletişim kuramayacaktı _______ (burada kullanıcınız gelecek)

Bu nedenle, veritabanınızı bağlamak için Windows kimlik doğrulaması kullanıyorsanız, IIS Uygulama havuzu ayarlarını değiştirmeniz yeterlidir. IIS Uygulama havuzunun kimliğini yerel Sistem olarak değiştirmeniz gerekir.

Windows WCF kimlik doğrulama adımları aşağıdadır:

1) IIS'yi açın (windows + R (çalıştırma), ardından inetmgr yazın, ardından Tamam'ı tıklayın)

2) Bağlantılar altında PC'nizin adını çift tıklatın

3) Uygulama Havuzları'na tıklayın

4) Uygulama havuzunuzu seçin (DefaultAppPool)

5) Daha sonra sağdaki eylemler altında Gelişmiş Ayarlar'a tıklayın:

6) Proses Modeli bölümüne gidin ve

7) Kimlik'e tıklayın.

8) Şimdi LocalSystem'ı seçin.

Şimdi sql server management studio'nuzu açın: run-> yazıp ssms -> yazıp ok tuşuna basın ssms'de windows kimlik doğrulama hesabınızı kullanarak giriş yapın. Güvenlik sekmesini genişletme girişleri sekmesini açın, ardından hesabınızı görüntüleyebilirsiniz.

Şimdi hesabınızın açık özellikleri userMapping'e gidin, ardından bağlanmak istediğiniz veritabanını seçin, ardından seçilen veritabanı için kullanmak istediğiniz rol üyelik hizmetlerini kontrol edin. Tamam'ı tıklayın.

(Ağ hizmetleri yani intranet kullanıcıları için, NT AUTHORITY \ SYSTEM kullanıcısı için yukarıdaki ayarları da yapılandırmanız gerekir)

add Trusted_Connection = Doğru; bağlantı dizenizdeki özelliği. Kaydedin ve web servisini dağıtın. Uygulama havuzunu yeniden başlatın.

veritabanını şimdi bağlayabileceksiniz.


Mükemmel! LocalSystem bu sorunu benim için düzeltti :)
totaliter

3

Bu iletiyi aldım ve web sunucusunda Windows Kimlik Doğrulaması kullanıyorum.

Şu anda kimliği doğrulanmış web kullanıcısının, Uygulama Havuzunda belirtilen IIS APPPOOL \ ASP.NET v4 Kullanıcısını kullanmak yerine veritabanına karşı kimlik doğrulaması yapılmasını istedim.

Ben web.config içine aşağıdaki girerek buldum bu benim için sabit:

<system.web>
  <identity impersonate="true" />
</system.web>

https://msdn.microsoft.com/en-us/library/bsz5788z.aspx

SQL DB'de AppPool kullanıcı adı oluşturma veya yalnızca SQL Auth'u kullanma ile ilgili diğer Yanıtları görüyorum. SQL içinde bireysel Windows kullanıcılarını yakalamak veya güven altına almak istemiyorsanız her ikisi de doğru olacaktır.

Tom


Bu bizim için çözdü ve neden olduğundan emin değiliz. IIS / AppPool sadece açıkça "Integrated Security = true" yazan linkstring'i ele geçiriyor mu? Neden??
Guy

3

1_in SqlServer Security => Giriş => NT AUTHORITY \ SYSTEM => RightClick => Özellik => UserMaping => Veritabanınızı Seçin => Genel && Sahip Seçin => Tamam 2_In IIs Uygulama Havuzları DefaultAppPool => Gelişmiş Ayar => Kimlik => LocalSystem => Tamam


2

Kimliğin ayarlanması yalnızca sayfalarımda çalışır.


2

Visual Studio uygulamasını başlattığınızda Cassini web sitenizi kendi kullanıcı kimliğiniz olarak çalıştırır. IIS, web sitenizi bir Uygulama Havuzu Kimliği olarak çalıştırır. Uygulama Havuzu Kimliğine Veritabanına erişim izni verilmedikçe hata alırsınız.

IIS, güvenliği artırmak için Uygulama Havuzu Kimliğini tanıttı. Web sitelerini varsayılan Uygulama Havuzu Kimliği altında çalıştırabilir veya kendi adıyla yeni bir Uygulama Havuzu oluşturabilir veya bir Kullanıcı Hesabı (genellikle Etki Alanı Hesabı) altında çalışan kendi adıyla yeni bir Uygulama Havuzu oluşturabilirsiniz.

Ağa bağlı durumlarda (Azure'da olmayan) yeni bir Uygulama Havuzu'nun Active Directory Etki Alanı kullanıcı hesabı altında çalışmasını sağlayabilirsiniz; Bunu makine hesabına tercih ederim. Bunu yapmak, ayrıntılı güvenlik ve veritabanları dahil ağ kaynaklarına ayrıntılı erişim sağlar. Her web sitesi farklı bir Uygulama Havuzu üzerinde çalışır (ve her biri kendi Etki Alanı Kullanıcısı hesabı altında çalışır).

Tüm Bağlantı Dizelerinde Windows Tümleşik Güvenliği'ni kullanmaya devam edin. SQL Server'da Etki Alanı kullanıcılarını oturum açma olarak ekleyin ve web sitelerine göre veritabanlarına, tablolara, SP'ye vb. İzinler verin. Örneğin, Website1 tarafından kullanılan DB1, User1 için bir oturum açma bilgisine sahiptir, çünkü Website1 bir Uygulama Havuzu'nda User1 olarak çalışır.

Visual Studio yerleşik DB'sinden (ör. LocalDB) ve yerleşik Web Sunucusundan bir üretim ortamına dağıtım ile ilgili bir zorluk, geliştiricinin kullanıcı SID'sinin ve ACL'lerinin güvenli bir üretim ortamında kullanılmamasından kaynaklanır. Microsoft, dağıtım için araçlar sağlar. Ancak, localDB ve localWebServer ile yeni kolay VS IDE'de kutunun dışında çalışan her şeye alışkın olan kötü geliştiriciye yazık, çünkü bu araçlar bu geliştirici için, özellikle SysAdmin ve DBAdmin desteğinden yoksun bir geliştirici için kullanmak zor olacak veya onların uzmanlık bilgisi. Bununla birlikte, Azure'a dağıtım, yukarıda belirtilen kurumsal ağ durumundan daha kolaydır.


2

Bağlantı dizenizi web.config dosyasına eklediyseniz, "Integrated Security = false;" web.config dosyasında belirtilen kimliği ve şifreyi kullanır.

<connectionStrings>
    <add providerName="System.Data.SqlClient" name="MyDbContext" connectionString="Data Source=localhost,1433;Initial Catalog=MyDatabase;user id=MyUserName;Password=MyPassword;Trusted_Connection=true;Integrated Security=false;" />
</connectionStrings>

2

Belirtildiği gibi, Windows Kimlik Doğrulaması kullanmayın, SQL Server Kimlik Doğrulaması kullanın

Ayrıca "Sunucu Bağlantısı" iletişim kutusunu kullanarak bağlantı oluşturduysanız, web.config dosyasındaki bağlantıları kontrol ettiğinizden emin olun. Büyük olasılıkla bağlantı oluşturdunuz / değiştirdiniz ve bu bağlantı web.config dosyasında güvenilir bağlantı olarak saklandı. Sadece bu kimlik doğrulamasını kullanın

<add name="MyDBConnectionString" connectionString="Data Source=localhost;Initial Catalog=Finantial;User ID=xxx;Password=xxx" providerName="System.Data.SqlClient"/>

bu da hatayı düzeltmelidir.


2

Kullanıcı için veritabanına izin vermenin başka bir yolu IIS APPPOOL\ASP.NET v4.0aşağıdaki gibidir.
resim açıklamasını buraya girin


  1. IIS APPPOOL\ASP.NET v4.0Varsayılan Şemanızda olduğu gibi Kullanıcı Adı ve Oturum Açma Adı ile Yeni Kullanıcı ekleyin .
  2. Sahip şeması ve Üyeliği, Check db_datareader, db_datawriter

1

Soruyla ilgili olduğu ve bazı durumlarda cevaplayabileceği için bunu bir cevap olarak göndereceğimi düşündüm.

Aynı mesaj , veritabanı yoksa da görünür !

Bağlantı dizenizde yanlış yazım olmadığından, doğru sunucu örneğini vb. Gösterdiğinden emin olun.


1

Ben aynı sorunu ben değiştirerek çözdük mü Integrated Security=Trueiçin YANLıŞ şimdi çalışma


1

benim için işe yarayan benzer bir şey oldu, özelliği değiştirdi. Integrated Security = True to Integrated Security = web sitesinin web.config dosyasında false


bu çalışıyor! Entegre güvenliği kaldırdım
Charles Xavier

0

Ne yaptın @Teddyönerilen ve HALA aynı hatayı alıyorum?

Üst sunucuya değil, sanal dizininize karşılık gelen uygulama havuzu ayarlarını değiştirdiğinizden emin olun. Her sanal dizinin kendi AppPool'u vardır ve devralmaz.


0

DefaultAppPool'da Identity özelliğinde NetworkService ve Sql Server'da Kullanıcı Ağ Hizmeti ekleyin ve veritabanınıza uygun izinleri verin, bu benim için çok iyi çalışıyor, yerel olarak test ettim, ancak bu herhangi birinden bağlanmak için en iyi yapılandırma olduğunu düşünüyorum ağdaki diğer bilgisayar. IIS'de Kimlik'te LocalSystem'ı ayarladığınızda, bu iyi çalışır ve Sql Server'da başka bir kullanıcı oluşturmak gerekli değildir, ancak bunun bir ağ ortamında çalışmayacağını düşünüyorum.


0

ASP.NET Web API'sini test ederken de aynı sorunla karşılaştım

SQL Server 2012 Express'te oluşturulan Visual Studio 2013 Express Veritabanında Web geliştirildi. sağlayıcı için .... 'APPPOOL \ DefaultAppPool' atıfta bulunarak

Çalışan çözüm.

IIS'de

'DefaultAppPool' uygulama havuzuna tıklayın Set Identify = 'ApplicationPoolIdentity' Set .NET framework = v4.0 (uygulamam 4.5 olmasına rağmen)

SQL Server Management Studio'da

Güvenlik klasörüne sağ tıklayın (SQL Server motorunun altında tüm tablolar için geçerlidir) Kullanıcı'ya sağ tıklayın ve 'IIS APPPOOL \ DefaultAppPool' ekleyin 'Grant' sütunundaki güvenli bir şekilde vermek istediğiniz seçenekleri işaretleyin. Yukarıdakilerle ilgili olarak, eğer bir DBA iseniz muhtemelen bu seçeneklerin ne olduğunu bilmek ve kontrol etmek istersiniz. Eğer benim gibi bir geliştirici sadece MVC tarzı EF 6 üzerinden SQL Server erişmek de olur WEB API hizmeti test etmek istedim sonra sadece her şeyi kontrol edin. :) Evet biliyorum ama işe yaradı.


0

Yeni bir oturum açma eklerseniz, sunucu özellikleri (rightclick -> özellikler) / güvenlik altında, kimlik doğrulama modunun hem windows hem de sqlserver ve windows olarak ayarlandığından emin olun.


0

Güvenlik altında "Herkes" i ekleyin. Sunucu ve veritabanına giriş yapan kullanıcılar eklediyseniz, bu eksik bir şeydir. Bu yardımcı olur umarım.


Kimlik doğrulama kısmı ele alınır ve erişime izin vermek için yetkilendirme kodu ile kontrol edilir. Herhangi bir belirsizlik olduğunu düşünüyorsanız beni düzeltmekten çekinmeyin. Teşekkürler.
avinava basu

0

Eğer geçtikten sonra bu hata karşılaşırsanız Kayıt için, LocalDBiçin SQLEXPRESS, emin veritabanı zaten esists yapmak SQLEXPRESS. Bunu Management Studio'da doğrulayabilirsiniz.

Geçtikten Entity Frameworksonra kullanırken aynı sorunu yaşadım SQLEXPRESS from LocalDB. Update-DatabaseKomuta etmek zorunda kaldım . Bundan sonra başarılı bir şekilde bağlanabildim.


0

Tam olarak @JeffOgata'nın söylediği gibi yaptım ama hatayı aldım:

Windows NT user or group 'IIS APPPOOL\ASP.NET v4.0' not found. Check the name again. (Microsoft SQL Server, Error: 15401)

Hata iletime tekrar baktım ve şöyle dedi Login failed for user 'IIS APPPOOL\DefaultAppPool'.

Adında bir kullanıcı ekledikten sonra IIS APPPOOL\DefaultAppPoolher şey çalıştı.


0

SQL Server Profiler'i (SSMS => Araçlar menüsünde bulunur) kullandım ve (IIS veritabanına bağlanmaya çalıştığında) IIS kullanıcımın bu sorunun yanıtlarında önerilen tüm adımlar ne olursa olsun NT AUTHORITY \ IUSR olduğunu gördüm . Bu kullanıcıyı SQL Server'a ekledim ve işe yaradı ...


0

Asp.net web formunda,

asp.net yüklerken bu hata düzeltildi:

Sunucu Yöneticisi> Yönet> Rol ve Özellik Ekle> Sunucu Rolleri> Web Sunucusu (IIS)> Web Sunucusu> Uygulama Geliştirme> ASP.NET 3.5 / 4.6 yüklü.

benim sorunum düzeltildi.

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.