it-swarm-tr.com

CustomErrors mode = "Kapalı"

Webapp'ımı sağlayıcıya her yüklediğimde hata alıyorum. CustomErrors modu nedeniyle tüm gördüğüm varsayılan "Çalışma Zamanı hatası" mesajı, hata hakkında daha fazla bilgi edinmek için customError'ları kapatmamı söyleyen talimat.

Bıktım, web.config'umu şöyle görünecek şekilde ayarladım:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

ve yine de, elde ettiğim tek şey, aptalca bir uzak hatalar sayfasıdır, bunun hakkında hiçbir yararlı bilgi yoktur . customErrors OFF!

234
Radu094

Bu, son birkaç gündür beni delirtti ve dolanamadı ama sonunda anladı:

Benim makine.config dosyasında <system.web> altında bir giriş vardı:

<deployment retail="true" />

Bu, bir web.config dosyasında belirttiğiniz diğer customError ayarlarını geçersiz kılıyor, bu nedenle yukarıdaki girişi şöyle ayarlayın:

<deployment retail="false" />

şimdi, bir kez daha ihtiyacım olan ayrıntılı hata mesajlarını görebileceğim anlamına geliyor.

machine.config konumunda

32 bit

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

64 bit

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 

Dışarıdaki birine yardım eden ve birkaç saat süren saç kurtaranı kurtardığınız umuduyla.

151
Ronan

"Kapalı" büyük/küçük harf duyarlıdır.

Web.config dosyanızda "O" harfinin büyük harf olup olmadığını kontrol edin, bir kaç kez bu acı çektim

126
juan

Bu soruya daha fazla durum eklemek adına (burası tam olarak aynı sorunu yaşadığım için baktığım yer olduğu için), işte cevabım:

Benim durumumda, yanlış olanı görmek istiyorsanız, der ki, genel hatadaki metni kesip yapıştırdım. 

<system.web>
   <customErrors mode="Off"/>
</system.web>

Öyleyse bu sorunu çözmeliydi ama elbette değil! Benim sorunum, yukarıda bir <system.web> düğümü birkaç satır (derleme ve doğrulama düğümünden önce) ve bunun altında birkaç satırın altında bir kapatma etiketi </system.web> olmasıydı. Bunu düzelttikten sonra sorun çözüldü. Yapmam gereken şey sadece bu satırın kopyalanması/yapıştırılması:

<customErrors mode="Off"/>

Bu, tekrar tekrar yapmaya devam ettiğim Aptal Şeylerin yıllıklarından, "Yıkıma Yolunuzu Kopyalayın ve Yapıştırın" bölümünde.

47
Cyberherbalist

Sharepoint 2010 uygulamaları için ayrıca C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config dosyasını düzenlemeli ve <customErrors mode="Off" /> tanımlamalısınız.

10
Rubens Farias

Bunu düzeltmek için gerçekten çalışan bir cevap burada buldum: https://stackoverflow.com/a/18938991/550975

Bunu web.config'nuza eklemeniz yeterlidir:

<configuration>  
  <system.webServer>  
    <httpErrors existingResponse="PassThrough"/>  
  </system.webServer>  
<configuration>
7
Serj Sagan

Erişim hakkınız varsa, hatayla ilgili daha fazla bilgiyi Olay Görüntüleyicisi'nde bulabilirsiniz. Sağlayıcınız, kendi machine.config dosyasında geçersiz kılarak ya da perakende özelliğini true olarak ayarlayarak özel hataların görüntülenmesini de önleyebilirdi ( http://msdn.Microsoft.com/en-us/library/ ms228298 (VS.80) .aspx ). 

6
digitaljeebus

Burada açıklanan şeylerin çoğunu denedim. VWD kullanıyordum ve içerdiği varsayılan web.config dosyası:

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
        <error statusCode="403" redirect="NoAccess.htm" />
        <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>

Mode = "RemoteOnly" modunu "" Off "olarak değiştirdim. Yine de sevinç yok .. __ Sonra IIS yöneticisi, özellikleri, ASP.Net Sekmesi, Düzenleme konfigürasyonunu kullandım, sonra CustomeErrors sekmesini seçtim. Bu hala RemoteOnly'ı gösterdi. Bunu Kapalı olarak değiştirdim ve sonunda ayrıntılı hata mesajlarını görebildim.

Web.config dosyasını incelediğimde, system.web'de iki CustomErrors düğümü olduğunu gördüm; ve ikinci girişin (değiştirdiğim bir yorumun içindeydi) fark ettim. Bu yüzden uzak bir sunucudaki web.config dosyasını incelemek için not defteri kullanmamaya çalışın.

Ancak, IIS düzenleme yapılandırma öğelerini kullanırsanız, web.config dosyasındaki hatalardan şikayetçi olur. Daha sonra "web.config'inizde bir XML sözdizimi hatası var" diyen tüm cevapları ekarte edebilirsiniz.

6
Philip Madams

Hala bu sayfayı alıyorsanız, Web'i geçmeden önce muhtemelen esiyordur.

ASP.Net’in .Net Framework klasörleri, IIS Metatabanı, vb. Gibi şeylere ihtiyaç duyduğundan emin olun. ASP.Net’in doğru bir şekilde yüklenip IIS doğru şekilde?

Düzenleme: Greg'in yorumunun aklıma gelmesinden sonra, gönderdiğiniz şeyin çok az web.config'iniz olduğunu varsaydım, dahası var mı? Öyleyse web.config'ün tamamını yayınlayabilir misiniz?

5
Nick Craver

Benim sorunum bu benim web.config dosyasında tanımlanmış olmasıydı

<httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="404" />
  <remove statusCode="500" />
  <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
  <error statusCode="500" responseMode="ExecuteURL" path="/Error/Internal" />
</httpErrors>
5
Dongolo Jeno

Ben de bu sorunu yaşadım, ancak Apache ve mod_mono kullanırken. Bu durumda başka biri için, yeni sürümü okunmaya zorlamak için web.config değiştirdikten sonra Apache'yi yeniden başlatmanız gerekir.

5
mikel

Aslında, web uygulamamı barındırırken düşündüğüm şey, yerel Makinenizde geliştirdiğiniz kod, barındırma şirketinin size sunduğundan daha yüksek bir sürümdür. Yönetici haklarına sahipseniz, Microsoft ASP.NET sürüm desteğini web barındırma ayarlarında değiştirebilirsiniz 

2
Joseph D'Souza

Bu hatayı da yaptık ve bizim durumumuzda, uygulama havuzu kullanıcısının artık web.config dosyasına izin vermemesi nedeniyle. İzinlerini yitirmesinin nedeni (daha önce her şey yolundaydı), siteyi bir rar dosyasında yedeklememizin ve web.config dosyasının bir yedek sürümünü rar'dan siteye sürmemizdi. Bu, oturum açmış kullanıcı dışında benim için web.config dosyasındaki tüm izinleri kaldırmış görünüyor. 

Bunu çözmemiz biraz zaman aldı çünkü klasör seviyesindeki izinleri tekrar tekrar kontrol ettim, ama asla dosya seviyesinde değil. 

2
Ghlouw

Bu sorunu yaşadık ve bunun nedeni IIS kullanıcısının web sunucusundaki makine yapılandırmasına erişememesiydi.

2
Tjaart

MVC 4 önizlemesini kullanıyorsanız, HandleErrorAttribute kullandığınız için bunu yaşıyor olabilirsiniz. Davranış 5'te değiştirildi, böylece özel hataları kapatırsanız istisnaları ele almaz.

1
Will

Ben de benzer bir konuyu ele aldım. Benim durumumda varsayılan site asp.net sürümü 1.1 iken 2.0 web uygulamasını başlatmaya çalışıyordum. Hata oldukça önemsizdi, ancak özel hataların neden ortadan kalkmayacağı hemen belli değildi ve çalışma zamanı hiçbir zaman olay günlüğüne yazmadı. Açık bir düzeltme, sürümün IIS Asp.Net sekmesinde eşleşmesiydi.

1
Roman

Uygulamayı yeniden başlatmayı deneyin (silmek yerine bir app_offline.htm oluşturun) ve hala aynı hata mesajını alıyorsanız, web.config içinde customErrors'ı yalnızca bir kez ilan ettiğinizden veya benzer bir şey yaptığınızdan emin olun. Web.config dosyasındaki hataların uygulama üzerinde garip bir etkisi olabilir.

1
Adam Vigh

Web.config'inizde æøå gibi özel bir karakteriniz var mı? Öyleyse, kodlamanın utf-8 olarak ayarlandığından emin olun.

1
Frederik Vig

Ayrıca, web sitesini sunucudaki bir tarayıcıda açmayı da deneyebilirsiniz. Çok fazla ASP.NET geliştirme yapmıyorum, ancak özel hataların yalnızca güvenlik önlemi olarak sunucuda tam hata metnini görüntülemek için bir ayarı olduğunu hatırlıyorum.

1
Neil Barnwell

Aynı sorunu yaşadım ancak farklı bir şekilde çözüm buldum. 

-

Yaptığım şey, Uygulama Havuzu için Gelişmiş AyarlarIIS Yönetici' de açtım.

Orada Enable 32-Bit Applications ila True ayarını yaptım. 

1
Levi Johansen

Bu web uygulaması bir web sitesinin dizin ağacındaki diğer uygulamaların altında mı? Varsa, diğer web ayarları için ana web.config dosyalarını kontrol edin. Ayrıca, dizininizin IIS'de bir uygulama dizini olarak ayarlandığından emin olun.

1
Greg Hurlman

Bu gerçekten garip. Bu hatayı aldım ve sunucumu yeniden başlattıktan sonra kayboldu.

0
Ustin

Aynı sorunu yaşadım ve bunun nedeni IIS ASP.NET 1.1 kullanıyordu ve site .NET 2.0 gerektiriyordu.

Hata mesajı birkaç saatliğine beni atmak dışında hiçbir şey yapmadı.

0
SimonHL

Buradaki tüm cevapları denedikten sonra, Application_Error metodumun bu olduğu ortaya çıktı:

Server.ClearError();
Response.Redirect("/Home/Error");

Bu çizgilerin kaldırılması ve ayar yapılması sorunu çözdü. (Müşteri hala customErrors="On" ile hata sayfasına yönlendirildi).

0
EM0

Benim için system.web yukarıda web.config daha yüksek bir hataydı.

blah dosyası bulunmadığı için o noktada bir hata atıyordu. Çünkü henüz System.Web bölümüne ulaşmamıştı, henüz CUstomErrors (On) için sunucu varsayılan ayarını kullanıyordu.

0
andrew wisener

Eklediğinizden emin olun. system.web'den hemen sonra

Düğümün sonuna doğru koydum ve işe yaramadı. 

0
Nayef

Bir config dönüşümü yapıyorsanız, aşağıdaki satırı ilgili web.config dosyasından kaldırmanız gerekebilir.

<compilation xdt:Transform="RemoveAttributes(debug)" />
0
Rich Hildebrand

Ayrıca, yaptığım gibi, website.config dosyasını web.config'de düzenlediğinizden emin olun.

0

Aynı sorunu yaşadım ve bu durumun istisnası nedeniyle açıkça belirtildiği Olay Görüntüleyicisi uygulama günlüğüne baktım. Benim durumumda istisna aşağıdaki gibi oldu ...

İstisna bilgisi:

Exception type: HttpException 
Exception message: The target principal name is incorrect.  Cannot generate SSPI context.
at System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app)
at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

The target principal name is incorrect.  Cannot generate SSPI context.

Şifremi uygulama havuzunda yeni güncelledim ve bu benim için çalışıyor.

0
Niraj Trivedi

Bazı durumlarda web.config dosyasının doğru biçimlendirilmemiş olması da mümkündür. Bu durumda, daha önce çalışacak önce satır satır geçmek zorunda. Genellikle, yeniden yazma kuralları burada suçlu.

0
chriskuffner