2013-10-22 10 views
55

Sorunum var, IIS, Visual Studio Express 2013 Web için * .json dosyalarının yüklenmesine izin vermiyor. Bir * .json dosyasını yüklemeye çalışırken, 403 Yasaklı ve IIS'nin nasıl yapılandırılacağı konusunda bir yardım sayfası, JSON dosyalarının yüklenmesine izin verir, ancak bu bilgilerle/IIS'nin bulunduğu yerle ne yapacağını bilmiyorum. Web için Visual Studio Express 2013'te JSON dosyalarının yüklenmesine izin ver

Bu

hata sayfası:

HTTP Hatası 404.3 - Eğer çünkü uzatma yapılandırması hizmet olamaz isteğinde sayfa bulunamadı. Sayfa bir komut dosyasıysa, bir işleyici ekleyin. Dosya indirilecekse, bir MIME haritası ekleyin.

Büyük olasılıkla: Bir işleyici eşlemesi eksik olabilir. Varsayılan olarak, statik dosya işleyicisi tüm içeriği işler. Kullanmaya çalıştığınız özelliği yüklenmemiş olabilir. Web sitesi veya uygulama için uygun MIME haritası etkin değil. (Uyarı: kullanıcıların, .ASPX sayfaları veya .config dosyaları gibi indirilmemesi gereken içerikler için bir MIME haritası oluşturmayın.) ASP.NET yüklü değilse.

Yapabileceğiniz şeyler: system.webServer/handlers: Geçerli sayfa için beklenen işleyicisinin eşlendiğinden emin olun. Ön koşullara (örneğin, runtimeVersion, pipeelineMode, bitness) 'a dikkat edin ve bunları uygulama havuzunuzun ayarlarıyla karşılaştırın. Beklenen işleyici satırında yazım hataları için fazladan dikkat edin. Lütfen , kullanmaya çalıştığınız özelliklerin yüklü olduğunu doğrulayın. MIME haritasının etkinleştirildiğini doğrulayın veya appcmd.exe komut satırı aracını kullanarak Web sitesi için MIME eşlemesini ekleyin. Bir MIME türü ayarlamak için , IIS Express yükleme dizininde aşağıdaki komutu çalıştırın: appcmd set config/section: staticContent /+ [fileExtension = 'string', mimeType = 'string'] fileExtension dizesi, dosyadır. ad uzantısı ve mimeType dizesi, dosya türü açıklamasıdır. Örneğin, ".xyz" uzantısına sahip bir dosya için MIME eşlemi eklemek için: appcmd set yapılandırması /section: staticContent /+[fileExtension='.xyz',mimeType='text/plain '] Uyarı: Bu MIME eşlemesinin, listeye eklemeden önce Web sunucunuzun için gerekli olduğundan emin olun. .CONFIG veya gibi dinamik dosyalama sayfaları, .ASP veya .ASPX gibi yapılandırma dosyaları, doğrudan indirilen olmamalıdır ve her zaman bir işleyici tarafından işlenmelidir. Veritabanı dosyaları veya yapılandırması için kullanılan dosyalar .XML veya .MDF gibi diğer dosyalar bazen yapılandırma bilgilerini depolamak için kullanılır. İstemcilerin bunları etkinleştirmeden önce bu dosya türlerini karşıdan yükleyip yükleyemeyeceğini belirleyin. ASP.NET'i yükleyin. Bu hata hakkında ek bilgi için başarısız olan istek izleme günlüklerini kontrol edin. hakkında daha fazla bilgi için, buraya tıklayın.

Ayrıntılı Hata Bilgileri: Modül StaticFileModule Bildirim
ExecuteRequestHandler Handler StaticFile Hata Kodu 0x80070032 İstenen URL: http: //localhost:64107/Settings/Settings.json Fiziksel Yol D: \ GYTE \ RepoP_Paneon \ Settings \ Ayarlar.json Oturum Açma Yöntem anonim oturum açma Kullanıcı Anonim Talebi Takip Dizin
C: \ Users \ stefank Belgeler \ \ IISExpress \ TraceLogFiles REPOP_PANEON \

Daha Fazla Bilgi: İstenen URL'nin dosya uzantısı bir MIME için olduğunda bu hata oluşur Sunucuda yapılandırılmamış türü. Sen dinamik komut yazma sayfaları, veritabanı veya yapılandırma dosyaları olmayan dosyalar için dosya uzantısı için bir MIME türü ekleyebilirsiniz. Bir işleyici kullanarak bu dosya türlerini işleyin. Dinamik komut dosyası sayfalarının, veritabanı veya yapılandırma dosyalarının doğrudan yüklemelerine izin vermemelisiniz. Biraz daha googling sonra

cevap

164

», ve ben deney Daha fazla bilgi, Web.config IIS ayarlarını tanımlamak zorunda olduğunu öğrendim. Aşağıdaki yapılandırmayı ekledikten sonra

:

bir cazibe gibi çalışır
<system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".json" mimeType="application/json" /> 
    </staticContent> 
    </system.webServer> 

.

Tam kurulum dosyası örneği: Yönetici yetkilerine sahip

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"/> 
    </system.web> 
    <system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".json" mimeType="application/json" /> 
    </staticContent> 
    </system.webServer> 
</configuration> 
+6

İlginç, bu benim için işe yaramadı. VS 2013, IIS Express, IE 11, .NET 4.5.1 kullanıyorum. – jpierson

+0

Yapılandırma dosyanız nasıl görünüyor? – Stefan

+0

Bu benim için de işe yaramadı. .json dosyası hala html/text MIME tipi – codeepic

5
  • Açık CMD.
  • gidin:

    cd C:\Program Files\IIS Express veya
    cd C:\Program Files (x86)\IIS Express

  • Çalıştır komutu:

    appcmd set config /section:staticContent /+[fileExtension='JSON',mimeType='application/x-javascript']

6

Biz IIS ile (Visual Studio geliştirme ortamı ayırt etmek gerekebilir Express) yerel IIS'den ve uzak bir sunucu (Azure WebSites gibi). Benim yerel (intranet) zaten IIS tanımlanmış JSON mim türüne sahip olduğundan bu ayrım yapmak gerekir

<mimeMap fileExtension=".json" mimeType="application/javascript" /> 

: Özellikle IIS Express hedeflemek için, örneğin, biz %USERPROFILE%\Documents\IISExpress\config\applicationhost.configsystem.webServer/staticContent altında düzenleyin. Ben Azure web sitelerine dağıtırken yüzden Web.Release.config bu dönüşümü kullanın:

<system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".json" mimeType="application/javascript" xdt:Transform="Insert" /> 
    </staticContent> 
</system.webServer> 
14

iyi gelecek IIS json desteği inşa sahiptir durumunda kaldır etiketi ekleyin. Bu, mimeMap'in web.config bölümüm.

<system.webServer> 
    <staticContent> 
     <remove fileExtension=".woff" /> 
     <remove fileExtension=".woff2" /> 
     <remove fileExtension=".json" /> 
     <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" /> 
     <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" /> 
     <mimeMap fileExtension=".json" mimeType="application/json" /> 
    </staticContent> 
<system.webServer> 
İlgili konular