29 Şubat 2012 Çarşamba

NET 3.5 / 4.0 UrlRoutingModule 404.0 0x80070002 StaticFile Hatası Çözümü


Aşağıdaki çözüm Windows 2008 Server, IIS 7.5 ve .NET 4 kullanılan bir konfigürasyon için geçerlidir ancak diğer konfigürasyonlarda da uygulanabilir.

.NET 3.5 / 4.0 UrlRoutingModule kullandığınızda aşağıdaki hatayı alıyorsanız;

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Module: IIS Web Core
Notification: MapRequestHandler
Handler: StaticFile
Error Code: 0x80070002
Requested URL: http://localhost:80/index.html
Physical Path: C:\aaaaaaa\bbbbbbb.html
Logon Method: Anonymous
Logon User: Anonymous

Sunucu Taraflı Kontrol Edilecekler

1- IIS (7/7.5) te sitenin application pool özelliklerinde classic değil integrated (tümleşik) seçili olduğundan emin olun.
Eğer integrated a aldığınızda hata veriyor ise web.config i buna göre düzenleyin çünkü classic modda UrlRoutingModule çalışmaz.

2- IIS (7/7.5) te site özelliklerinde handler mappings (işleyici eşleşmeleri) i açıp sağdaki menüden üste geri dön seçeneğini tıklayarak .aspx uzantılarının listede bulunduğuna emin olun.

3- .NET 4 ile ilgili bir sorun olduğunu düşünürseniz

Başlat - Çalıştır - cmd  ile komut satırını açıp,

cd  C:\Windows\Microsoft.NET\Framework\v4.0.30319\
aspnet_regiis.exe -i

komutunu çalıştırabilirsiniz.

Eğer bu ayarlarda sorun yok ise bundan sonrası ancak kod ile ilgili olabilir;

web.config içindeki kodların içeriğinde aşağıdakilerin olup olmadığını kontrol etmeniz gerekmekte.

<system.webServer>

    <modules runAllManagedModulesForAllRequests="true">

      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

    </modules>

  </system.webServer>

Halen çözüm bulamadıysanız ve sorunun kodlarla ilgili değil de sunucu taraflı olduğunu düşünüyorsanız sunucu bilgilerinizle birlikte bana ulaşabilirsiniz.

Saygılar...