IIS7 dağıtımı - 'system.web.extensions / scripting / scriptResourceHandler' bölümünü kopyala


209

Çerçeve bölümü 4.0 olarak ayarlanmış IIS7'de varsayılan uygulama havuzuna bir .net 3.5 web sitesi dağıtmaya çalışırken, aşağıdaki hatayı alıyorum.

Tanımlanmış bir 'system.web.extensions / scripting / scriptResourceHandler' bölümü var.

Rahatsız edici satırları yorumlamak da yardımcı olmadı. Ne yapmam ya da bakmam gerektiğine dair işaretçiler var mı?

Yanıtlar:


338

Planınız, .net 4.0'da çalışan bir Uygulama Havuzu olan bir IIS'ye dağıtmaksa, .net 3.5'e işaret eden tüm bölümleri içeren web.config dosyasını temizlemeniz gerekir. Bunun başarısız olmasının nedeni, bu bölüm tanımlarının tüm sistemi içeren .NET 4.0 (bkz.% Windir% \ microsoft.net \ framework \ v4.0.30319 \ config \ machine.config) kök web.config dosyasına zaten eklenmiş olmasıdır. web.extensions zaten bildirildi.

Başka bir hızlı düzeltme, geliştirme havuzunuzun olduğu gibi uygulama havuzunun 2.0 olarak ayarlanmasıdır.


Teşekkürler. Aslında biraz daha tinkering sonra bu geçici çözüm anladım ..
user20358

3
Bunu açıkladığınız için teşekkürler. Yapılandırma dosyasından bir bölümü kaldırmak için çözüm görmeye devam ettim ve merak ediyorum, "Yapılandırma dosyanızın bazı bölümleri nasıl bir çözüm kesiliyor"?
Adam Bruss

13
Benim APP HAVUZU 2.0 INSTEAD 2.0 OLDU!
RolandoCC

1
Bu kolay oldu, bu eski siteyi bir 2.0 uygulama havuzuna geçirin ve çalışıyor. Teşekkürler!
mgrenier

1
Sadece web.config dosyasındaki .net 3.5 bölümünü kaldırmak benim için çalıştı
Anand

49

Benim için çözüm, Uygulama Havuzları'ndaki .NET framework sürümünü v4.0'dan v2.0'a Varsayılan Uygulama Havuzu için değiştirmekti:

resim açıklamasını buraya girin


13
aaaand, aslında uygulamada .NET 4.0 kullanıyorsanız?
Michael Paulukonis

3
@MichaelPaulukonis Bu problemi yaşadım, kök web sitesinde web sitemin miras aldığı bir web.config olduğu ortaya çıktı.
guanome

@MichaelPaulukonis, pfft böyle olacak!
DaveDev

Uygulamam 3.5'ten 4.0'a yükseltildiğinde, uygulama havuzu doğru bir şekilde güncellendiğinde bu sorunu yaşadım, ancak web.config eskiydi. Web.config, 4.0'dan beri yerel olan ve açıkça eklenmesi gerekmeyen tüm bölüm gruplarını eklemeye çalışıyordu.
drizin

48

Benim gibi, hedef v4 gerekir ama sadece .net 3.5 ile inşa edebilirsiniz ise talimatı uygulayın burada . Sadece web'inizde değiştirin. İçeriğini tümüyle yapılandırın <configSections>:

<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
  <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions,  Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
      <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
      <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
      <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
    </sectionGroup>
  </sectionGroup>
</sectionGroup>


3
Benim hatamı çözen tek çözüm senindir! Çok teşekkürler!
Devdatta Tengshe

1
Bu benim sorunumu da çözdü. Sunucu IIS6'yı IIS7.5'e yükseltmişti. IIS6'da v4.0 altında çalışıyordu, ancak IIS7.5'in bu web.config değişikliğine ihtiyacı vardı.
johna

bu harikaydı.
mzonerz

PublicKeyToken'deki değer büyük / küçük harfe duyarlıdır (ve yanıttaki gibi görünmelidir). Benim büyük harfim vardı ve bu işe yaramadı.
Björn

3

El problema es porque el pool por defecto esta tr .net 4.0 Çözüm: Yönetici bir IIS sunucusuna giriş yapın. [Görüntü açıklamasını buraya girin] [1] y cambiar la vercion del framework! burada] [2]

Con esto pudes solucionar el problema al instalar la yönetim merkezi SharePoint 2010

----- Google Çeviri ile -----

Sorun havuz varsayılan olmasıdır. Net 4.0 Çözümü: Uygulama havuzlarının sağ tarafındaki değerleri ayarlamak için sunucu IIS Yöneticisi'ne girin.! [Buraya resim açıklamasını girin] [1] ve çerçeve sürümünü değiştirin! [Resim açıklamasını buraya girin] [2]

Bu, SharePoint merkezi yönetim 2010'u yükleme sorununu çözmelidir


22
StackOverflow'a hoş geldiniz! Yeterli İngilizce uzmanlığınız yoksa, lütfen cevaplarınızı Google Çeviri ile çalıştırın . Topluluk, tuhaf ifadeleri düzenleyerek geliştirir. Cevabınız için teşekkür ederim. Google Çeviri aracılığıyla ||||| ||||| Bienvenido bir StackOverflow! Google Translate'in suficiente, por favour, ejecute a través de e teneus . La comunidad mejorará frases extrañas en la edición. Gracias por su respuesta.
Andrew Kozak


3

Necromancing.
Web.config dosyasında system.web.extensions yapılandırma bölümleri veya işleyici / modül girişleri yoksa, bu sorun, siz / başka birinin gizlenmişken başka bir VisualStudio-Project'i (2013/2015/2017) kopyaladığından kaynaklanır. - dosya gizlenmez .

Bu nedenle, yalnızca .git'i değil, aynı zamanda .VSbir IIS-Express içeren var olmayan yollarda (veya daha kötüsü varolan yollarda) web.config dosyalarına işaret eden applicationhost.config dosyası aynı içeriğe sahip değil) ...

Çözüm:
.VS klasöründeki applicationhost.config dosyasını silin.
Veya sadece .VS klasörünü tamamen silin.
Visual Studio yeniden oluşturur.


Mükemmel açıklama
William Bello

2

Uygulamam bir ASP.Net3.5 uygulamasıydı (çerçevenin 2. sürümünü kullanarak). ASP.Net3.5 uygulamaları oluşturulduğunda Visual Studio otomatik olarak web.config dosyasına scriptResourceHandler ekledi. Net'in sonraki sürümleri bunu machine.config dosyasına yerleştirir. ASP.Net 3.5 uygulamanızı sürüm 4 uygulama havuzunu kullanarak çalıştırırsanız (yükleme sırasına bağlı olarak bu varsayılan uygulama havuzudur), bu hatayı alırsınız.

Sürüm 2.0 uygulama havuzunu kullanmaya taşındığımda. Hata gitti. Daha sonra WCF .svc sunarken hatayla uğraşmak zorunda kaldım:

HTTP Hatası 404.17 - Bulunamadı İstenen içerik komut dosyası gibi görünüyor ve statik dosya işleyici tarafından sunulmayacak

Bazı araştırmalardan sonra, WCF işleyicisini kaydetmem gerekiyor gibi görünüyor. aşağıdaki adımları kullanarak:

  1. Visual Studio Komut İstemi'ni aç (yönetici olarak)
  2. "C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation" a gidin
  3. Servicemodelreg -i komutunu çalıştırın


1

Benim durumumda, tüm çözümü (Target Framework Migrator adlı bir uzantı kullanarak) 4.6.2'ye dönüştürdüm, ancak değişiklikleri geri aldım ve 3.5'e geri döndüm (çözüm TFS tarafından sürümlendirildi). Bu sorunu çözmek için, yalnızca sorunlu projeyi (çalıştırılacak IIS Express'i kullanarak) 4.6.2'ye ve sonra 3.5'e dönüştürdüm.


Teşekkürler. geri dönme ve değişiklikleri geri alma, uygulamayı doğru bir şekilde .NET 3.5 durumuna doğru getirmeyecek gibi görünüyor.
Iman

0

Başkalarına yardımcı olabilecek bu sorunu önlemenin başka bir yolu da, .net web hizmetinizi mümkünse 4.0 veya daha yüksek bir sürüme yükseltmektir.


0

Benim durumumda, aynı uygulama havuzunu paylaşan 2 farklı uygulamam vardı. Birincisi .net4.5 çerçevesini, yeni olanı 2.0'ı kullanıyordu. İkinci uygulamayı kendi uygulama havuzuna değiştirdiğimde, web.config üzerinde hiçbir değişiklik olmadan iyi çalışmaya başlıyor.


0

Kararım biraz aptalcaydı.

  • .Net 3.5'in bir kopyasını yükledim

  • Başka bir uygulama havuzu oluşturdu ve .net 3.5'i seçti (açılır menüde 2.0.5077 yazıyor)

  • Web sitemi bu uygulama havuzuna ekledi

  • Eski ve yeni havuzlar geri dönüştürüldü ve site çalışmaya başladı.

Pencere özellikleri açmak yaptım ve kullanmak için başka bir uygulama havuzu oluşturma dedi rağmen 3.5 yüklü değil bana geldi. Umarım bu diğerlerine yardım eder.


0

Benim durumumda urlrewrite kuralını manuel olarak eklemek istedim ve bariz hatayı göremedim ( <rules>etiketi kaçırdım ):

Yanlış kod:

    <rewrite>
      <rule name="some rule" stopProcessing="true">
        <match url="some-pattenr/(.*)" />        
        <action type="Redirect" url="/some-ne-pattenr/{R:1}" />
      </rule>
    </rewrite>    

  </system.webServer>
</configuration>

uygun kod (kural etiketi ile):

    <rewrite>
      <rules>
        <rule name="some rule" stopProcessing="true">
          <match url="some-pattenr/(.*)" />        
          <action type="Redirect" url="/some-ne-pattenr/{R:1}" />
        </rule>
      </rules>
    </rewrite>

  </system.webServer>
</configuration>

0

Aşağıdaki adımları uygulayarak çözdüm:

  1. IIS'de yeni bir uygulama grubu oluşturdum.
  2. Bu sorunu yaşayan site veya web uygulaması için gelişmiş ayarları açın.
  3. Ve yeni uygulamanın grubunu ayarlayın.

İşte bu adımların görüntüleri:

Yeni bir uygulama grubu oluşturma

Uygulamanın grubunu oluşturduktan sonra

Sitenizdeki veya web uygulamanızdaki uygulama grubunu ayarlama


0

Bu hata mesajı çeşitli durumlarda ortaya çıkıyor gibi görünüyor.

Benim durumumda, uygulamamın Web.Config dosyasının üstünde kök klasörde (C: \ Inetpub \ www.root) fazladan bir Web.Config dosyası vardı. Muhtemelen bazı testlerden sonra oradan ayrıldım, her şeyi unuttum ve sorunun ne olduğunu anlayamadım.

Bunu kaldırmak benim için sorunu çözdü.


0

Bu belki sizin için yanlış cevaptır. Ancak bu, sorunumu çözmeye çalıştığımda Google'daki ilk hit oldu. Bu sözü edilen...

Benim için de aynı hata iletisi oluştu, ancak IIS Express'i Visual Studio üzerinden çalıştırmaya çalıştığımda.

Benim sorunum yanlışlıkla applicationhost.config benim taahhüt oldu TFS . Daha sonra, en son taahhütleri aldıktan sonra projeyi dizüstü bilgisayarımda çalıştırmaya çalıştığımda. o zaman hata oluştu.

Sanal dizin yolunun yanlış olduğunu buldum.

<virtualDirectory path="/" physicalPath="C:\Users\giddan\Documents\Visual Studio 2015\Projects\ProjectName\DeV.ProjectName\DeV.ProjectName.Web" />

Umarım bu birine yardım eder!

Bu benim ilk yazım, bu yüzden nazik ol :)

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.