Menyebarkan situs web: 500 - Galat server internal

189

Saya mencoba untuk menggunakan aplikasi ASP.NET. Saya telah menyebarkan situs ke IIS, tetapi ketika mengunjunginya dengan browser, ini menunjukkan kepada saya ini:

server error

500 Internal Server Error.

Ada masalah dengan sumber daya yang Anda cari, dan tidak dapat ditampilkan.

Setelah mengutak-atik web.config, saya mendapat:

Halaman tidak dapat ditampilkan karena kesalahan server internal telah terjadi.

Bagaimana saya bisa melihat masalah aktual di balik kesalahan server ini?

Yakub Jedryszek
sumber
1
Pastikan Anda memiliki pemetaan wildcard di tempat untuk aplikasi MVC pada direktori ...
sajoshi

Jawaban:

298

Pertama, Anda perlu mengaktifkan dan melihat kesalahan detail dari pesan web Anda, karena ini adalah pesan umum tanpa memberikan informasi tentang apa yang sebenarnya terjadi karena alasan keamanan.

Dengan kesalahan terperinci, Anda dapat menemukan masalah sebenarnya di sini.

Juga, jika Anda dapat menjalankan browser di server , Anda mendapatkan rincian tentang kesalahan, karena server mengenali bahwa Anda lokal dan menunjukkannya kepada Anda. Atau jika Anda dapat membaca log server menggunakan Event Viewer, Anda juga melihat rincian kesalahan Anda.

Pada IIS 6

<configuration>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

Pada IIS 7

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>
    </system.webServer>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

Catatan: Anda dapat menghindari Debug = true . Anda hanya perlu menutup kesalahan khusus untuk sementara waktu dan mendapatkan halaman kesalahan rinci.

Referensi: Mengaktifkan pesan kesalahan khusus Windows di artikel bantuan Go Daddy .

Juga, ini dapat membantu: Cara mengaktifkan pesan kesalahan terinci (dari IIS).

Aristos
sumber
9
Terima kasih untuk kirimannya! Bagian yang melakukannya untuk saya adalah: <httpErrors errorMode = "Detail" />
jaseeey
@codemonkeyliketab Harus sama ... atau serupa ... jika Anda menjalankan iis express di komputer, buka EventViewer Anda ...
Aristos
4
run the browser on the serverbekerja untuk saya .. terima kasih saudara
Rajshekar Reddy
1
@Pelajaran ya ada - Anda mengaktifkan kesalahan terinci hanya untuk waktu singkat untuk dapat menemukan beberapa kesalahan Anda dan membuat aplikasi Anda berjalan - kemudian Anda menutupnya kembali
Aristos
1
Terima kasih, mengaktifkan pesan kesalahan terinci dari IIS membantu.
Vadim Tofan
25

Saya mencabut rambut saya karena masalah ini. Memastikan entri berikut ada di web.configfile root untuk saya:

<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
</configuration>

Ingat bahwa Anda harus menambahkan ini ke elemen XML yang ada , jika sudah ada. Anda tidak bisa hanya menambahkan di akhir file, karena Anda tidak dapat memiliki banyak salinan elemen apa pun.

Joshua Frank
sumber
9

Bagi saya, kode berikut di web.config adalah biang keladinya. Ketika saya menghapusnya, situs web berfungsi dengan baik.

  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>
pengguna3638709
sumber
1
Terima kasih .. bekerja untuk saya tetapi apakah mimeMap diperlukan untuk menampilkan video?
panky sharma
9

Saya akhirnya memecahkan kesalahan "500 server Internal" ini ketika menggunakan aplikasi ASP.NET MVC 3.0 di godaddy.ocm shared hosting.

entah bagaimana ada perbedaan pada versi file DLL yang direferensikan dan versi yang disebutkan dalam file web.config.

Saya mencoba semua opsi yang disebutkan di berbagai forum. Tidak ada yang membantu, meskipun semua orang menyarankan perbaikan yang sama, tetapi entah bagaimana itu tidak berhasil dalam skenario saya. Akhirnya setelah membenturkan kepalaku selama dua hari. Saya memutuskan untuk menghapus semua referensi file DLL dan menghapus web.cofig (membuat salinan lokal) dari proyek dan membiarkan aplikasi melempar kesalahan dan kemudian menambahkan file DLL satu per satu membuat salinan ke local = true.

Setelah semua file DLL ditambahkan, saya membuat aplikasi ASP.NET MVC baru dan menyalin web.config aplikasi baru ke aplikasi saya yang sebenarnya. Jadi aplikasi saya yang sebenarnya sekarang memiliki web.config baru, dan kemudian saya menyalin connectionstring dan referensi lain dari salinan web.config lokal yang saya simpan.

Saya baru saja mengkompilasi aplikasi dan menerbitkannya ke folder lokal dan FTP folder yang diterbitkan ke goDaddy.

Itu berhasil dan akhirnya masalah saya terpecahkan.

Manish kumar
sumber
Kesalahan saya diselesaikan oleh: stackoverflow.com/questions/11359957/... Juga harus menginstal Elmah
Per G
7

Dalam kasus saya, saya menempatkan kesalahan pada web.configfile saya . Kunci aplikasi entah bagaimana diletakkan di bawah tag <appSettings>. Tapi saya heran mengapa itu tidak menampilkan kesalahan konfigurasi. Kesalahan 500 terlalu umum untuk menyelidiki masalah.

Van Thi
sumber
Sama saja di sini. web.config disalin karena kesalahan ke sub direktori dan menyebabkan errord weired meskipun saya mengatur "tampilkan detail kesalahan" menjadi true.
Avni Yayin
7

Upaya pertama saya untuk menerbitkan dan kemudian menjalankan situs yang sangat sederhana yang hanya menghasilkan HTML "Halaman tidak dapat ditampilkan karena kesalahan server internal telah terjadi."

Masalahnya: Saya mengatur situs ke .NET 3.5 di Visual Studio (klik kanan proyek situs web -> Halaman Properti -> Build), tetapi situs Web di Azure dikonfigurasi sebagai .NET 4.0. Ups! Saya mengubahnya menjadi 3,5 di Azure, dan itu berhasil.

kenswdev
sumber
5

Selain saran lainnya, pastikan untuk mengubah existingResponseatribut dari httpErrorsnode Autodari Replace, atau untuk menghapus properti itu seluruhnya.

<httpErrors existingResponse="Replace" />
                              ^^^^^^^ not going to work with this here
ErikE
sumber
4

IIS juga melaporkan kode status 500 tanpa petunjuk log peristiwa apa pun jika ada izin yang tidak mencukupi pada direktori home fisik (yaitu IIS_IUSRS tidak memiliki akses).

kesalahan
sumber
3

Server Error 500 - Kesalahan server internal. Ada masalah dengan sumber daya yang Anda cari, dan tidak dapat ditampilkan. Sialan. Hosting - Web - Ekonomi - Windows Plesk

Dalam kasus saya, saya mengganti kode ini:

<configuration> 
  <system.webServer> 
    <httpErrors errorMode="Detailed" /> 
    <asp scriptErrorSentToBrowser="true"/> 
  </system.webServer> 
  <system.web> 
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web> 
</configuration>

Kemudian ubah kerangka 3.5 ke kerangka 4. Ini menunjukkan kesalahan terperinci saya. Saya menghapus kode di:

<httpModules></httpModules>

Itu memecahkan masalah saya.

ThanGio
sumber
3

Untuk IIS 8 Ada langkah ekstra yang harus dilakukan selain mengubah customErrors = Off untuk menampilkan konten kesalahan.

<system.web>
   <customErrors mode="Off" />
</system.web>
<system.webServer>
   <httpErrors existingResponse="PassThrough" errorMode="Detailed"/>
</system.webServer>

Raul menjawab pertanyaan di tautan ini. Matikan kesalahan custom IIS8 oleh Raul

Michelle
sumber
Anda melewatkan / menutup setelah "Detail"
manuel-84
Solusi ini adalah apa yang diperlukan untuk IIS 10.0.14393.0.
Marcus Parsons
2

Mungkin file web.config Anda salah atau tidak memiliki beberapa tag. Saya memecahkan masalah saya menggunakan tag konfigurasi yang benar untuk .NET 4.

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
        <namespaces>
            <clear/>
            <add namespace="System"/>
            <add namespace="System.Collections"/>
            <add namespace="System.Collections.Specialized"/>
            <add namespace="System.Configuration"/>
            <add namespace="System.Text"/>
            <add namespace="System.Text.RegularExpressions"/>
            <add namespace="System.Web"/>
            <add namespace="System.Web.Caching"/>
            <add namespace="System.Web.SessionState"/>
            <add namespace="System.Web.Security"/>
            <add namespace="System.Web.Profile"/>
            <add namespace="System.Web.UI"/>
            <add namespace="System.Web.UI.WebControls"/>
            <add namespace="System.Web.UI.WebControls.WebParts"/>
            <add namespace="System.Web.UI.HtmlControls"/>
        </namespaces>
    </pages>
    <authentication mode="None"/>
</system.web>
Edu Pelais
sumber
2

Saya menyadari izin untuk file dan folder di server Anda juga penting. Saya mengunggah file saya dari sistem operasi linux dan biasanya izin terbatas untuk membaca dan menulis. Jadi saat diunggah, izinnya masih sama seperti di mesin lokal.

Saya memiliki kesalahan yang sama dan saya baru saja mengubah izin untuk folder yang saya unggah dan kesalahan itu hilang.

Semoga ini bisa membantu seseorang.

tandai kasina
sumber
Bukankah jawaban ini pada dasarnya sama dengan jawaban Juli 2014 ?
Wai Ha Lee
1

500 Galat Internal Galat
Windows Hosting Masalah

Godaddy Hosting

Saya telah menghadapi masalah yang sama, tetapi sekarang masalah saya telah terselesaikan. Selalu gunakan di hosting ini ini berfungsi.

Saya juga akan merekomendasikan Anda semua untuk melakukan perubahan apa pun yang Anda ingin lakukan di file web.config Anda. Silakan lakukan satu per satu dan uji yang sama pada domain langsung sehingga Anda dapat menemukan masalah yang tepat atau fitur yang tidak diizinkan oleh penyedia hosting Anda.

<?xml version="1.0"?>

<configuration>
    <system.web>
        <trust level="Medium"/>
        <compilation debug="true" targetFramework="4.5">
            <assemblies>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>

        <httpRuntime targetFramework="4.5" />
        <sessionState mode="InProc" cookieless="false" timeout="90" />
        <authentication mode="Forms">
            <forms loginUrl="default.aspx"  
                   defaultUrl="default.aspx"
                   protection="All"
                   cookieless="UseCookies"
                   slidingExpiration="false"
                   timeout="30"
                   name="aeon.corpusjuris.in" />
        </authentication>

        <customErrors 
            mode="Off" 
            defaultRedirect="errorpage.aspx">

            <error statusCode="403" redirect="errorpage.aspx"/>
            <error statusCode="404" redirect="errorpage.aspx"/>
        </customErrors>

        <!--  <httpModules>
                <add name="HTTPCaching" type="HTTPCaching"/>
            </httpModules>
        -->
    </system.web>

    <runtime>
        <performanceScenario value="HighDensityWebHosting"  />
    </runtime>

    <system.webServer>
        <!--  <modules runAllManagedModulesForAllRequests="true">
                <add name="HTTPCaching" type="HTTPCaching"/>
            </modules>
        -->

        <defaultDocument>
            <files>
                <clear />
                <add value="default.aspx" />
            </files>
        </defaultDocument>

        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>

        <staticContent>
            <clientCache cacheControlCustom="public"
                         cacheControlMaxAge="60:00:00"
                         cacheControlMode="UseMaxAge" />
        </staticContent>
    </system.webServer>

    <system.web.extensions>
         <scripting>
             <webServices>
                 <jsonSerialization maxJsonLength="90000000">
                 </jsonSerialization>
             </webServices>
         </scripting>
    </system.web.extensions>

</configuration>
Tushar Tyagi
sumber
dalam kasus saya kesalahan itu disebabkan oleh <httpRuntime enableVersionHeader = "false" /> di web.config
b3wii
1

Jika Anda menggunakan HttpHandler khusus (yaitu, menerapkan IHttpModule), pastikan Anda memeriksa panggilan ke Errormetode tersebut.

Anda bisa meminta pawang Anda melempar aktual HttpExceptions(yang memiliki Messageproperti berguna ) selama debugging lokal seperti ini:

    public void Error(object sender, EventArgs e)
    {
        if (!HttpContext.Current.Request.IsLocal)
            return;
        var ex = ((HttpApplication)sender).Server.GetLastError();
        if (ex.GetType() == typeof(HttpException))
            throw ex;
    }

Pastikan juga untuk memeriksa Pengecualian InnerException.

Pelindung satu
sumber
1

500 server internal dapat muncul karena beberapa alasan. Alasan pertama mungkin karena file web.config tidak dibuat dengan benar, berarti Anda telah melewatkan beberapa tag di file web.config. Kedua kesalahan ini bisa disebabkan oleh beberapa masalah kode. Untuk memeriksa komponen aplikasi web mana yang menyebabkan kesalahan ini, Anda dapat memeriksa pengaturan Aplikasi dalam file web.config. Rincian pemecahan dan penelusuran 500 kesalahan server internal dengan diagram diberikan di sini:

Manish
sumber
Registrasi domain ini berakhir pada 15/06/2018.
Patricia
Tautan sekarang melayani malware. Saya telah menghapus tautan
Liam
0

Pastikan akun Anda menggunakan IIS 7. Untuk informasi lebih lanjut, lihat Menyesuaikan Pengaturan IIS pada Akun Windows Hosting Anda. Ikuti instruksi dalam Mengubah Mode Pipa pada Akun Hosting IIS Windows Anda. Pilih Mode Pipeline Terpadu. Di bagian Referensi Proyek Anda, atur Salin Lokal ke True untuk majelis berikut:

System.Web.Abstractions
System.Web.Helpers
System.Web.Routing
System.Web.Mvc
System.Web.WebPages

Tambahkan rakitan berikut ke proyek Anda, dan kemudian atur Salin Lokal ke True:

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.
Kurkula
sumber
0

Terkadang, alasannya mungkin salah satu rakitan .dll Anda tidak terdaftar dengan benar di server.

Misalnya, Anda dapat berhasil menjalankan aplikasi web C # Excel di mesin lokal Anda dengan Office diinstal, sambil mendapatkan 500 kesalahan pada penyebaran server, karena tidak ada Office suite diinstal di server, dan dengan demikian Anda mendapatkan kesalahan server.

pengguna3745869
sumber
0

Bagi mereka yang memiliki kemungkinan ini (VPS hosting bukan web hosting):

Terhubung ke server hosting Anda melalui Remote Desktop. Buka Web Browser dari desktop jarak jauh Anda dan Anda akan melihat deskripsi detail kesalahan.

Anda tidak perlu mengubah web.config atau memaparkan detail apa pun kepada orang lain.

Tomas Kubes
sumber
0

Jika Anda menggunakan IIS 8.5 mungkin Anda perlu mengubah pengaturan ID ApplicationPool dari ApplicationPoolId ke NetworkService

Klik kanan Pool Aplikasi yang dimaksud, klik pada "Pengaturan Lanjut" dan kemudian gulir ke bawah ke ID - itu mungkin akan diatur ke ApplicationPoolIdentity . Klik tombol (..) dan pilih NetworkService dari daftar dropdown sebagai gantinya.

Pastikan juga bahwa itu adalah aplikasi .NET 2.0 yang tidak Anda referensi kerangka kerja 4.0 di App Pool Anda.

Steve Woods
sumber
0

Sebelum mengubah web.configfile, saya akan memeriksa apakah .NET Frameworkversi yang Anda gunakan persis (maksud saya, 4,5! = 4.5.2) sama dengan GoDaddypengaturan Anda (pengaturan ASP.Net di Anda Plesk panel). Itu akan secara otomatis mengubah file web.config Anda ke kerangka kerja yang benar.

Juga perhatikan bahwa untuk saat ini (Januari '16), GoDaddybekerja dengan ASP.Net 3.5dan 4.5.2. Untuk menggunakan 4.5.2dengan Visual Studio itu harus 2012atau yang lebih baru, dan jika tidak 2015, Anda harus mengunduh dan menginstal Paket Pengembang .NET Framework 4.5.2.

Jika masih tidak berfungsi, maka ya, langkah Anda berikutnya harus mengaktifkan pelaporan kesalahan terinci sehingga Anda dapat men-debugnya.

Sergio R
sumber
0

Saya baru-baru ini mengalami masalah yang sama, ruang disk penuh di server. Membersihkan beberapa ruang telah menyelesaikan masalah.

Achintya
sumber