Penempatan IIS7 - bagian duplikat 'system.web.extensions / scripting / scriptResourceHandler'

209

Saat mencoba untuk menyebarkan situs web .net 3.5 pada kumpulan aplikasi default di IIS7 memiliki bagian kerangka kerja diatur ke 4.0, saya mendapatkan kesalahan berikut.

Ada bagian duplikat 'system.web.extensions / scripting / scriptResourceHandler' yang ditentukan.

Mengomentari kalimat yang menyinggung juga tidak membantu. Adakah petunjuk tentang apa yang perlu saya lakukan atau lihat?

pengguna20358
sumber

Jawaban:

338

Jika rencana Anda adalah untuk menyebarkan ke IIS yang memiliki Application Pool berjalan di .net 4.0 Anda akan perlu untuk membersihkan web.config yang mencakup semua definisi bagian yang mengarah ke .net 3.5. Alasan ini gagal adalah karena definisi bagian ini sudah termasuk dalam root web.config di .NET 4.0 (lihat% windir% \ microsoft.net \ framework \ v4.0.30319 \ config \ machine.config) yang mencakup semua sistem. ekstensi web.telah dinyatakan sudah.

Perbaikan cepat lainnya adalah membuat kumpulan aplikasi diatur ke 2.0 seperti halnya mesin pengembangan Anda tampaknya.

Carlos Aguilar Mares
sumber
Terima kasih. Saya benar-benar menemukan solusi ini setelah bermain-main lagi ..
user20358
3
Terima kasih telah menjelaskan ini. Saya terus melihat solusi untuk menghapus bagian dari file konfigurasi dan saya bertanya-tanya, "bagaimana memotong bagian dari file konfigurasi Anda solusi"?
Adam Bruss
13
POOL APLIKASI SAYA SETELAH 4.0 BUKAN 2.0!
RolandoCC
1
Itu mudah, alihkan situs yang lebih lama ini ke kumpulan aplikasi 2.0 dan biola berfungsi! Terima kasih!
mgrenier
1
Hanya menghapus bagian .net 3.5 di web.config bekerja untuk saya
Anand
49

Solusi bagi saya adalah mengubah versi .NET framework di Application Pools dari v4.0 ke v2.0 untuk Pool App Default:

masukkan deskripsi gambar di sini

DaveDev
sumber
13
aaaand, jika Anda benar-benar menggunakan .NET 4.0 dalam aplikasi?
Michael Paulukonis
3
@MichaelPaulukonis Saya punya masalah ini, ternyata ada web.config di situs web root tempat asal situs web saya.
guanome
@MichaelPaulukonis, pfft seperti itu akan terjadi!
DaveDev
Saya mengalami masalah ini ketika aplikasi saya ditingkatkan dari 3,5 menjadi 4.0, kumpulan aplikasi diperbarui dengan benar, tetapi web.config sudah usang. Web.config berusaha menambahkan semua grup bagian yang karena 4.0 adalah asli dan tidak perlu ditambahkan secara eksplisit.
drizin
48

Jika, seperti saya, Anda perlu menargetkan v4 tetapi hanya dapat membangun dengan .net 3.5, ikuti instruksi di sini . Cukup ganti di web Anda. Konfigurasi seluruh konten <configSections>dengan:

<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>

Johann
sumber
3
Anda adalah satu-satunya solusi yang menyelesaikan kesalahan saya! Terima kasih banyak!
Devdatta Tengshe
1
Ini memecahkan masalah saya juga. Server telah ditingkatkan IIS6 ke IIS7.5. Pada IIS6 itu berjalan di bawah v4.0 tetapi IIS7.5 membutuhkan perubahan web.config ini.
johna
ini luar biasa.
mzonerz
Nilai dalam PublicKeyToken peka huruf besar-kecil (dan akan terlihat seperti pada jawabannya) Saya punya milik saya dalam huruf besar dan itu tidak berhasil.
Björn
3

Tuliskan ulasan ini untuk mengetahui cara mengakses Net 4.0 Solucion: masukkan server Administrador IIS lado derecho establecer valores de grupos de aplicaciones.! [Masukkan deskripsi gambar di sini] [1] y cambiar la vercion del framework! [Masukkan deskripsi gambar di sini] [2]

Con cono pudes solucionar el problema dan instalar la administrasi pusat SharePoint 2010

----- via Google Translate -----

Masalahnya adalah karena kumpulan ini secara default. Net 4.0 Solusi: masukkan server IIS Manager untuk menetapkan nilai di sisi kanan kumpulan aplikasi.! [Masukkan deskripsi gambar di sini] [1] dan ubah versi kerangka! [Masukkan deskripsi gambar di sini] [2]

Ini akan menyelesaikan masalah menginstal administrasi pusat SharePoint 2010

Aldo Flores Reyes
sumber
22
Selamat datang di StackOverflow! Jika Anda tidak memiliki kemampuan bahasa Inggris yang memadai, jalankan jawaban Anda melalui Google Translate . Komunitas akan meningkatkan frasa aneh dengan mengedit. Terima kasih atas jawaban Anda. ||||| via Google Translate ||||| Bienvenido a StackOverflow! Jika Anda tidak memiliki akun untuk bahasa Inggris, silakan, silakan untuk mencari informasi lebih lanjut tentang Google Terjemahan . La comunidad mejorará frases extrañas en la edición. Gracias por su respuesta.
Andrew Kozak
3

Atur kumpulan aplikasi ke 2.0, saya berhasil dan berhasil.

Arnold Sandí Calderón
sumber
3

Necromancing.
Jika Anda tidak memiliki entri konfigurasi system.web.extensions atau handler / module di web.config Anda, masalah ini disebabkan karena Anda / orang lain menyalin VisualStudio-Project (2013/2015/2017) sambil menyembunyikan -file tidak disembunyikan .

Karena itu, ia tidak hanya akan menyalin .git, tetapi juga .VS, yang berisi file applicationhost.config IIS-Express , yang mengarah ke file web.config di jalur yang tidak ada (atau lebih buruk, jalur yang memang ada, tetapi tidak memiliki konten yang sama) ...

Solusi:
Hapus file applicationhost.config di folder .VS.
Atau hapus saja folder .VS.
Visual Studio akan membuatnya kembali.

Stefan Steiger
sumber
Penjelasan luar biasa
William Bello
2

Aplikasi saya adalah aplikasi ASP.Net3.5 (menggunakan versi 2 dari framework). Ketika aplikasi ASP.Net3.5 dibuat, Visual Studio secara otomatis menambahkan scriptResourceHandler ke web.config. Versi .Net selanjutnya memasukkan ini ke dalam machine.config. Jika Anda menjalankan aplikasi ASP.Net 3.5 menggunakan kumpulan aplikasi versi 4 (tergantung pada urutan pemasangan, ini adalah kumpulan aplikasi default), Anda akan mendapatkan kesalahan ini.

Ketika saya pindah menggunakan kolam aplikasi versi 2.0. Kesalahan hilang. Saya kemudian harus berurusan dengan kesalahan ketika melayani WCF .svc:

Kesalahan HTTP 404.17 - Tidak Ditemukan Konten yang diminta tampaknya berupa skrip dan tidak akan dilayani oleh penangan file statis

Setelah beberapa penyelidikan, tampaknya saya perlu mendaftarkan handler WCF. menggunakan langkah-langkah berikut:

  1. buka Visual Studio Command Prompt (sebagai administrator)
  2. arahkan ke "C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation"
  3. Jalankan servicemodelreg -i
Paul Diggle
sumber
1

Dalam kasus saya, ini terjadi setelah saya mengonversi seluruh solusi (menggunakan ekstensi yang disebut Target Framework Migrator) ke 4.6.2 tetapi akhirnya membatalkan perubahan dan kembali ke 3.5 (solusi diversi oleh TFS). Untuk mengatasi ini, saya mengonversikan hanya proyek bermasalah (yang menggunakan IIS Express untuk menjalankan) ke 4.6.2 dan kemudian kembali ke 3.5.

Teluk Sola
sumber
Terima kasih. tampaknya mengembalikan dan membatalkan perubahan tidak akan membawa aplikasi ke status .NET 3.5 dengan benar.
Iman
0

Cara lain untuk menghindari masalah ini yang dapat membantu orang lain adalah membangun layanan web .net Anda ke versi 4.0 atau lebih tinggi jika memungkinkan.

Aelphaeis
sumber
0

Dalam kasus saya, saya memiliki 2 aplikasi berbeda yang berbagi kumpulan aplikasi yang sama. Yang pertama menggunakan bingkai .net4.5 dan yang baru menggunakan 2.0. Ketika saya mengubah aplikasi kedua menjadi kumpulan aplikasi sendiri, ia mulai berfungsi dengan baik tanpa ada perubahan pada web.config.

Dowler
sumber
0

Resolusi saya agak bodoh.

  • Saya memasang salinan .net 3.5

  • Membuat kumpulan aplikasi lain dan memilih .net 3.5 (katanya 2.0.5077 di drop down)

  • Menambahkan situs web saya ke kumpulan aplikasi itu

  • Daur ulang kolam lama dan baru dan situs mulai bekerja.

Itu datang kepada saya tidak memiliki 3,5 diinstal meskipun menyalakan fitur windows mengatakan saya lakukan dan membuat kumpulan aplikasi lain untuk digunakan. Saya harap ini membantu orang lain.

TheGhoul
sumber
0

Dalam kasus saya, saya ingin menambahkan aturan urlrewrite secara manual dan tidak dapat melihat kesalahan yang jelas (saya melewatkan <rules>tag):

salah kode:

    <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>

kode yang tepat (dengan tag aturan):

    <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>
Mariusz Pawelski
sumber
0

Saya sudah menyelesaikannya, melakukan langkah-langkah berikut:

  1. Saya membuat grup aplikasi baru di IIS.
  2. Buka pengaturan lanjutan untuk situs atau aplikasi web yang mengalami masalah ini.
  3. Dan atur grup aplikasi baru.

Di sini Anda memiliki gambar langkah-langkah ini:

Buat grup aplikasi baru

Setelah Anda membuat grup aplikasi

Atur grup aplikasi di situs atau aplikasi web Anda

Giovanny Farto M.
sumber
0

Pesan kesalahan ini tampaknya muncul dalam berbagai situasi.

Dalam kasus saya, di atas file Web.Config aplikasi saya, saya memiliki file Web.Config tambahan di folder root (C: \ Inetpub \ www.root). Mungkin ditinggalkan di sana setelah beberapa pengujian, saya sudah lupa semua tentang hal itu, dan tidak tahu apa masalahnya.

Menghapusnya memecahkan masalah bagi saya.

nassosk
sumber
0

Ini mungkin jawaban yang salah untuk Anda. Tapi ini adalah hit pertama di Google ketika saya mencoba menyelesaikan masalah saya. Dengan mengatakan ...

Pesan kesalahan yang sama juga terjadi pada saya, tetapi ketika saya mencoba menjalankan IIS Express melalui Visual Studio.

Masalah saya adalah bahwa saya keliru melakukan applicationhost.config saya ke TFS. Kemudian ketika saya mencoba menjalankan proyek di laptop saya setelah mendapatkan komitmen terbaru. saat itulah kesalahan terjadi.

Saya menemukan bahwa jalur direktori virtual salah.

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

Semoga ini bisa membantu seseorang!

Ini adalah posting pertama saya, jadi lembutlah :)

MrFile
sumber