IIS Express, ASP.NET MVC'de hata ayıklarken Erişim Reddedildi hatası veriyor


103

Bir ASP.NET MVC 3 projesi oluşturdum ve geliştirme sırasında web sunucusu olarak IIS Express kullanıyorum. Hata ayıklamaya çalıştığımda aşağıdaki hata mesajını alıyorum.

Bu nasıl çözülebilir?

'/' Uygulamasında Sunucu Hatası

Giriş reddedildi. Açıklama: Bu isteği yerine getirmek için gerekli kaynaklara erişilirken bir hata oluştu. Sunucu, istenen URL'ye erişim için yapılandırılmamış olabilir.

Hata mesajı 401.2 .: Yetkisiz: Sunucu yapılandırması nedeniyle oturum açılamadı. Sağladığınız kimlik bilgilerine ve Web sunucusunda etkinleştirilmiş kimlik doğrulama yöntemlerine göre bu dizini veya sayfayı görüntüleme izniniz olduğunu doğrulayın. Ek yardım için Web sunucusunun yöneticisine başvurun.


3
IISExpress'i idari Ayrıcalıklar olmadan mı çalıştırıyorsunuz?
chandmk

2
Bu yüzden bir süre kafamı salladıktan sonra sonunda fark ettim çünkü VS'nin varsayılan bir sayfa ayarlamaması ve görünüşe göre IISExpress.exe bunu açık hale getirmek için klasör listeleri vermiyor.
Mark Allen

Yanıtlar:


114

Visual Studio kullanıyorsanız, Çözüm Gezgini'nde projeye sol tıklayabilir ve Özellikler penceresinde Windows Kimlik Doğrulaması özelliğini Etkin olarak değiştirebilirsiniz .


2
Bu, Visual Studio 2012'ye özgü değildir, en azından Visual Studio 2010'da da yapılabilir.
Loïc Lopes

5
VS 2013'te benim için çalıştı.
kaybee99

2
Anonim kimlik doğrulamayı da devre dışı bırakmanız gerekir.
Sırlı

1
Çözüm gezgininde, çözüm düğümü altındaki proje adına tıklayın, ardından Özellikler penceresine geçin, burada Windows Kimlik Doğrulaması özelliğini Etkin olarak ayarladığını görebilirsiniz
sairfan

1
Bu ayarı özellikler penceresinin hiçbir yerinde görmüyorum. VS 2015 kullanıyorum.
Mark Bonafe

99

Bu sorunun nedeni, IIS Express'in Windows Kimlik Doğrulaması'na izin vermemesiydi. Bu ayarlanarak etkinleştirilebilir

<windowsAuthentication enabled="true">

C: \ Users [kullanıcı adı] \ Documents \ IISExpress \ config konumunda bulunan applicationhost.config dosyasında.


19
Visual Studio 2010 ve 2012 bu ayarı proje başına sizin için ekleyebilir, böylece genel ayar varsayılan ayarından değiştirilmez, bkz. Stackoverflow.com/a/7168308/23566
Robert Claypool

Bu ayarı deniyorum, çünkü VS 2013'te sporiad olarak da bu hatayı alıyorum , bakalım yardımcı olacak mı, size haber vereceğim.
Matt

2
% Userprofile% \ document \ iisexpress \ config \ applicationhost.config kullanırsanız daha iyi olur. Benimki D' deydi : (teşekkürler Dan! Danesparza.net/2014/09/… )
Jeramy Rutley

Bu benim için işe yarayan tek çözüm, çok teşekkürler!
Mohammad Anini

Bunu VS 2017'de denedim ve işe yaramadı. Jason tarafından yayınlanan çözüm işe yaradı.
myroslav

73

Jason'ın cevabını kullandım ama mülklere nasıl girileceğini açıklığa kavuşturmak istedim.

  1. Solution Explorer'da proje seçin

görüntü açıklamasını buraya girin

  1. F4 özelliklere ulaşmak için (sağ tıklama özelliklerinden farklı)
  2. Değişim Windows Kimlik için Etkin

görüntü açıklamasını buraya girin


3
Bunu yazdığınız ve değiştirilmesi gereken F4 özelliklerinin olduğunu belirttiğiniz için çok teşekkürler.
PeterDNCO

1
Teşekkür ederim! "Anonim Kimlik Doğrulama" yı da "Etkin" olarak ayarlamak zorunda kaldım.
Mahesh

1
Çok teşekkür ederim!
FunMatters

1
Güzelsin.
koşerjellyfish

1
VS 2015 kullanıyorum, bu mevcut değil!
Mark Bonafe

18

IIS Express'te Barındırma: 1. Projeyi seçmek için Çözüm Gezgini'nde projenize tıklayın. 2. Özellikler bölmesi açık değilse açın (F4). 3. Projenizin Özellikler bölmesinde: a) "Anonim Kimlik Doğrulama" yı "Devre Dışı" olarak ayarlayın. b) "Windows Kimlik Doğrulaması" nı "Etkin" olarak ayarlayın.


12

Benim durumumda dosyayı açmam gerekiyordu:

C:\...\Documents\IISExpress\config\applicationhost.config

Dosyanın içindeydim:

  <authentication>
  <anonymousAuthentication enabled="true" User="" />

Parçayı yeni çıkardım User="". Bu şeyin oraya nasıl geldiğini gerçekten bilmiyorum ... :)

Not: Aşağıdakilerin sonunda buna benzer bir şeye sahip olduğunuzdan emin olun applicationhost.config:

   .
   .
   .
   <location path="MyCompany.MyProjectName.Web">
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

Ayrıca buraya bir göz atmak isteyebilirsiniz: https://stackoverflow.com/a/10041779/114029

Artık giriş sayfasına beklendiği gibi erişebiliyorum.


1
Adımlarını takip ettim, hala işime yaramıyor. VS2010 açılan Eğer cezası, inşaat neyin 2013 vs sorunu
Gani

@ user1016740 Emin değilim çünkü bu sorunu çözmeye çalışmak için izlenecek çok sayıda olasılık / yol var. Burada anlattığım adımlar, sizinkinden farklı olduğunu düşündüğüm ortamımda sorunu çözdü.
Leniel Maccaferri

8

Benim durumumda, uygulamamın VS'den önceki bir çalıştırılması URL'yi ayırdı. Bunu bir konsolda çalıştırarak görebiliyordum:

netsh http show urlacl

Bu rezervasyonu silmek için bunu yükseltilmiş bir konsolda çalıştırdım:

netsh http delete urlacl http://127.0.0.1:10002/

Buradaki adımların sorunumu çözdüğünü buldum.

VS2013 kullanıyorum


Bir siteyi aynı anda birden çok bağlantı noktasında çalıştırmak için applicationhost.config dosyanızı daha önce düzenlediyseniz bu çok kullanışlıdır. .Config dosyasından girişlerin kaldırılması netsh içindeki herhangi bir ayırma işlemini kaldırmaz. Teşekkürler dostum.
Dusda

5

Administrative ModeBu hatadan kurtulmak için Visual Studio'yu çalıştırmam gerekiyordu.


3

Ben de aynı sorunu yaşadım ve sonunda üstesinden gelebildim.

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

Başka bir bağlantı noktası numarası seçtim ve her şey yoluna girdi!


1

Yukarıdakilerin hiçbiri benim için işe yaramadı. Bu benim için bugünden önce çalışıyordu. Daha sonra, dizüstü bilgisayarımda barındırılan bir bağlantı oluşturmaya çalıştığımı ve Kablosuz Ağ Bağlantımla bir internet bağlantısı paylaştığımı fark ettim.

Sorunumu çözmek için:

Denetim Masası> Ağ ve İnternet> Ağ Bağlantıları'na gidin

Sahip olabileceğiniz herhangi bir ikincil Kablosuz Ağ Bağlantısına sağ tıklayın (benimki Kablosuz Ağ Bağlantısı 2 olarak adlandırıldı) ve 'Özellikler'i tıklayın.

En üstteki 'Paylaşım' sekmesine gidin.

'Diğer ağ kullanıcılarının bu bilgisayarın İnternet bağlantısı üzerinden bağlanmasına izin ver' yazan kutunun işaretini kaldırın.

Tamam> ve ardından Uygula'ya basın.

Bu yardımcı olur umarım!


1

Web.config dosyamı açtım ve şu bölümü bulup kaldırdım:

<authorization>
  <deny users="?" />
</authorization>

ve sitem açıldı, ancak kimlik doğrulamayla ilgili sorunlar var ..


Tamam, sorunun çözülmesine yardımcı oldu ama şimdi düzeltmem gereken başka sorunlar var.
Jamshaid Kamran

0

IIS EXPRESS'teki bu tam sorunu, uygulama ana bilgisayarı .config dosyasını aşağıda belirtilen konum bölümüne düzenleyerek düzelttim. Visual Studio 2012'de Windows Kimlik Doğrulaması ayarlamıştım ancak XML'e girdiğimde şöyle görünüyordu.

Windows auth etiketinin gösterildiği gibi aşağıda eklenmesi gerekiyordu.

<windowsAuthentication enabled="true" />

<location path="MyApplicationbeingDebugged">
        ``<system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <!-- INSERT TAG HERE --> 
                </authentication>
            </security>
        </system.webServer>
</location>

0

Sağlayıcı Barındırılan kullanarak SharePoint için basit bir Uygulama oluşturmaya çalışırken bu sorunla mücadele ediyorum.

Bölümdeki applicationhost.config dosyasını inceledikten sonra, basicAuthentication false olarak ayarlandı. Senaryomda 401.2'yi geçmek için bunu true olarak değiştirdim. IIS Express için applicationhost.config dosyasının nasıl bulunacağına ilişkin birçok başka bağlantı vardır.


0

Bu "tam" yanıtı hiçbir yerde görmedim; Bunu gönderdikten sonra port numaralarını değiştirmeyle ilgili olanı gördüm, yani meh.

Visual Studio'daki proje özelliklerinizde, proje url'sinin IIS'de herhangi bir site bağlama için kullanılan aynı url'ye veya bağlantı noktasına atanmadığından emin olun.

Bunun için "neden" i arıyorum, ancak aklıma ilk gelen varsayım, hem IIS hem de Visual Studio'nun IIS express'in sanal dizinler oluştururken aynı dizini kullandığı ve Visual Studio'nun yalnızca yeni sanal dizinler oluşturabileceği ve değiştiremeyeceği yönündedir. IIS'nin bağlamalarını siteye uyguladığında oluşturduğu herhangi bir şey.

neden beni düzeltmekten çekinmeyin.


0

Hata sayfamız giriş sayfasının arkasındaydı, ancak giriş sayfasında kontrollerden birinde sonsuz bir döngü oluşturan bir hata vardı.

Tüm kontrolleri sorun teşkil eden sayfadan kaldırdık ve doğru kontrol bulunup düzeltilene kadar tek tek geri ekledik.


0

Benim durumumda (ASP.NET MVC 4 uygulaması), Global.asaxdosya eksikti. Solution explorer'da ünlem işaretiyle görünüyordu. Onu değiştirdim ve hata ortadan kalktı.

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.