มีจำนวน INCLUDES สูงสุดในหน้า Classic ASP หรือไม่

ฉันกำลังอัปเดตหน้า Classic ASP และฉันสังเกตเห็นว่าเมื่อฉันเพิ่ม INCLUDES จำนวนมาก (เช่น <!--#INCLUDE FILE="Foo.asp" -->) ฉันจะได้รับ "ข้อผิดพลาดเซิร์ฟเวอร์ HTTP/1.1 500" ทั่วไปที่แสดงเป็นตัวหนาบนหน้า

ส่วนหนึ่งมีความโดดเด่นเนื่องจากปกติฉันได้รับข้อความแสดงข้อผิดพลาดโดยละเอียด (ข้อผิดพลาด ไฟล์ บรรทัด ฯลฯ)

ฉันได้ตรวจสอบแล้วว่าไม่มี INCLUDES รายการใดที่มีข้อผิดพลาด ดูเหมือนว่าจะเกี่ยวข้องกับจำนวน INCLUDES หรือขนาดที่คอมไพล์แล้วของไฟล์ .asp

นี่เป็นสิ่งที่ฉันสามารถแก้ไขได้ในการตั้งค่า ASP สำหรับ IIS หรือไม่


person nbardach    schedule 12.04.2018    source แหล่งที่มา
comment
คุณได้ตรวจสอบรายการรวมทั้งหมดแล้วหรือยัง? อาจเป็นข้อผิดพลาดในบางหน้าที่รวมไว้แทนที่จะเป็นขีดจำกัด   -  person Ricardo Pontual    schedule 12.04.2018
comment
ใช่ ตามที่ฉันได้ระบุไว้ข้างต้น ฉันได้ตรวจสอบรวมทั้งหมดแล้วและไม่มีข้อผิดพลาด   -  person nbardach    schedule 12.04.2018
comment
คุณบอกว่าคุณได้รับข้อผิดพลาด 500 ทั่วไป - คุณได้เปิดใช้งานข้อความแสดงข้อผิดพลาดที่เป็นมิตรแล้ว - นี่อาจช่วยให้คุณระบุปัญหาได้ chestysoft.com/asp-error-messages.asp   -  person John    schedule 12.04.2018
comment
ใช่ฉันทำ ปกติฉันได้รับข้อความแสดงข้อผิดพลาดโดยละเอียดพร้อมรหัสข้อผิดพลาด หมายเลขบรรทัด หน้า ฯลฯ แต่นี่คือข้อความที่อ่านว่า HTTP/1.1 500 Server Error   -  person nbardach    schedule 12.04.2018


คำตอบ (2)


ฉันไม่เคยได้ยินเกี่ยวกับข้อจำกัดของการรวมเลย แต่เป็นไปได้ว่าหน้าผลลัพธ์ของคุณใหญ่เกินไป คุณได้ลบการรวมบางส่วนออกแล้วนำกลับเข้าไปทีละขั้นตอนหรือไม่?

อีกทางหนึ่งฉันชอบการรวมแบบไดนามิกประเภทหนึ่ง ด้วยฟังก์ชันต่อไปนี้ของฉัน คุณมีข้อดีบางประการ: คุณสามารถรวมไฟล์แบบไดนามิกได้ หน้าผลลัพธ์ของคุณจะรวมเฉพาะไฟล์ที่ไม่จำเป็นเท่านั้น สามารถใช้ตัวแปรจากสคริปต์หลักในไฟล์ที่รวมไว้ได้ คุณสามารถใส่รหัส asp ลงในฐานข้อมูลได้

แต่วิธีนี้มีข้อจำกัดประการหนึ่งคือ ไฟล์ที่รวมไว้ทั้งหมดจะต้องเขียนด้วย ASP ดังนั้นจึงไม่อนุญาตให้ใช้ ‹%= date %> จะต้องเขียนเป็นวันที่ตอบกลับเขียน

ฉันใช้ฟังก์ชันเพื่อรวมไฟล์ asp:

function fGet(getFile)
' source: http://www.aspfaq.de/index.asp?FID=14&ELE=1223
                Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")
    sPfad=Server.MapPath("./")&"\" &getFile

    Set objFile = objFileSys.OpenTextFile(sPfad)
        ' --- read the file
        FileContent = objFile.ReadAll
        objFile.Close
    Set objFile = Nothing
    Set objFileSys = Nothing

     fileContent=replace(fileContent,chr(60)&chr(37),"")
     fileContent=replace(fileContent,chr(37)&chr(62),"")

     Execute(FileContent)


end function
person Michael Kothe-multiNETT    schedule 23.04.2018
comment
การตอบกลับที่ดีและสคริปต์ที่เป็นประโยชน์มาก! ขอบคุณ แต่ไม่ค่อยตอบคำถามของฉัน คุณรู้หรือไม่ว่าหน้าผลลัพธ์ ASP มีขีดจำกัดหรือไม่? ฉันค้นหาแล้วไม่พบสิ่งที่กล่าวถึง docs.microsoft.com/en-us/iis/ configuration/system.webserver/asp/ - person nbardach; 23.04.2018
comment
คำตอบของฉันเริ่มต้นด้วยฉันไม่เคยได้ยินเกี่ยวกับข้อจำกัดของการรวม ฉันแค่เชื่อว่าคุณมีปัญหากับหน่วยความจำ คุณได้ลบการรวมทั้งหมดออกแล้วใส่ใหม่ทีละขั้นตอนหรือไม่? - person Michael Kothe-multiNETT; 24.04.2018
comment
ฉันเพิ่งทำการทดสอบเล็กๆ น้อยๆ ไฟล์ที่มีมากกว่า 100 รวม ไม่มีปัญหา! - person Michael Kothe-multiNETT; 24.04.2018
comment
ขอบคุณ! ฉันได้สร้างไฟล์ทดสอบที่มีการรวมไว้มากมาย ผลลัพธ์เช่นเดียวกับการทดสอบของคุณ ฉันคิดว่ามันต้องเกี่ยวข้องกับขนาดของหน้าสุดท้าย แต่ฉันไม่พบข้อมูลออนไลน์เกี่ยวกับขีดจำกัดของหน้า ASP - person nbardach; 25.04.2018
comment
บางทีนี่อาจช่วยได้: stackoverflow.com/questions/161712/ คืออะไร หรือตรวจสอบการตั้งค่าใน IIS-Server ของคุณภายใต้ ASP บางทีคุณอาจเปลี่ยนการตั้งค่าสำหรับแคชหรือขีดจำกัดได้ - person Michael Kothe-multiNETT; 25.04.2018

ลอง <%response.buffer = false%> โดยมีค่าเริ่มต้นเป็น true ใน IIS5.0 และใหม่กว่า และจะต้องปิดอย่างชัดเจน ควรเป็นบรรทัดแรกของโค้ดใต้คำสั่ง @LANGUAGE

การปิดบัฟเฟอร์นี้จะทำให้ทรัพยากรว่าง ดังนั้นคุณจะไม่ถึงขีดจำกัดสูงสุด การเพิ่มขนาดแคชไม่สามารถทำได้บนโฮสติ้งที่ใช้ร่วมกันเสมอไป ซึ่งเป็นจุดที่คุณอาจต้องเผชิญกับขีดจำกัดขนาด

person user11312624    schedule 04.04.2019
comment
ความคิดที่ดี. จะตรวจสอบสิ่งนี้ ขอบคุณ! - person nbardach; 04.04.2019