โฟลเดอร์ aspnet_client สำหรับภายใต้โครงสร้าง IIS คืออะไร


108

ฉันสังเกตว่ามักจะมีโฟลเดอร์ aspnet_client ภายใต้โครงสร้างโฟลเดอร์เว็บ IIS มาตรฐาน สิ่งนี้ใช้ทำอะไร? จำเป็นไหม?

คำตอบ:


91

ใน. NET 1.1 วันและก่อนหน้านี้โฟลเดอร์นี้จัดเตรียม ASP.NET ด้วยการสนับสนุน JavaScript สำหรับการควบคุมการตรวจสอบความถูกต้องและฟังก์ชันอื่น ๆ หากคุณไม่มีไซต์. NET 1.1 หรือเก่ากว่าที่ใช้งานอยู่ควรลบออกอย่างปลอดภัย ฉันจะเปลี่ยนชื่อก่อนเพื่อให้แน่ใจว่าจะไม่ก่อให้เกิดปัญหาใด ๆ


15
มันแสดงขึ้นเพื่อเตือนคุณว่าจะไม่ทำเรื่องแบบนั้นอีกต่อไป ... :)
Ostati

แม้ว่าคุณจะอยู่นอก. Net 1.1 วันแล้ว แต่คุณก็สามารถใช้ Crystal Reports ได้ แต่น่าเสียดายที่ยังคงใช้โฟลเดอร์ที่กล่าวถึง (และอาจมีซอฟต์แวร์อื่นที่มีลักษณะการทำงานเหมือนกัน) ดังนั้นอย่างน้อยให้สำรองข้อมูลก่อนที่จะลบโฟลเดอร์
Vadim Levkovsky

66

นอกเหนือจากสิ่งที่คนอื่นพูดแล้วมักจะสร้างขึ้นโดยเครื่องมือ aspnet_regiis ซึ่งสามารถเรียกใช้โดยสิ่งต่างๆเช่น Windows Update / AddRemove Windows Components / IIS ดังนั้นบางครั้งแม้ว่าคุณจะลบมันไปแล้ว อาจมีวิธีหยุดพฤติกรรมนี้ แต่ฉันไม่พบ (บางทีการเปลี่ยนเวอร์ชันแอปพลิเคชันเป็น. NET 2 จะทำได้จริง)

ดังนั้นหากคุณไม่ใช้คุณสมบัติบางอย่างของ. NET 1.0 / 1.1 (การตรวจสอบความถูกต้องการนำทางอัจฉริยะและอื่น ๆ ) คุณสามารถลบได้โดยไม่มีปัญหาใด ๆ อย่าแปลกใจถ้ามันกลับมา!


28
ฉันพบว่ามันกลับมาเป็นระยะ สิ่งที่น่าผิดหวังที่สุดคือทุกครั้งที่กลับมามันจะทำลาย WebDeploy เนื่องจากบัญชีที่ทำงานนั้นไม่มีสิทธิ์เข้าถึงเพื่อลบโฟลเดอร์ aspnet_client ที่สร้างขึ้น!
Russ Cam

5
@RussCam ฉันมีปัญหาเดียวกัน มันทำลาย WebDeploy ด้วยเหตุผลเดียวกัน มีใครหาวิธีหยุดการสร้างโฟลเดอร์นี้แบบสุ่มหรือไม่
tugberk

4
ฉันเพิ่งติดตั้ง DotNet Framework 4.5 โดยบริสุทธิ์ใจและไม่นานหลังจากนั้นการปรับใช้ WebDeploy ของเรา (ทริกเกอร์ผ่าน TeamCity) ก็ขัดข้องด้วยเหตุผลเดียวกัน โฟลเดอร์ darn กลับมาอีกครั้งอันเป็นผลมาจากการติดตั้ง 4.5 ใครก็ได้โปรดทำให้มันหยุด
Michael12345

2
ตอนนี้ฉันได้หันไปใช้การเพิ่มโฟลเดอร์เหล่านี้ลงในแพ็คเกจการปรับใช้ของเราแล้วดังนั้น TeamCity จึงไม่พยายามลบออก รู้สึกเหมือนกำลังก่อมลพิษในฐานรหัสของเรา แต่หวังว่าจะหยุดการแย่งชิงอำนาจระหว่าง ASP.NET และการปรับใช้แอปของเรา
Michael12345

1
ฉันรู้สึกรำคาญอย่างมากที่โฟลเดอร์นี้กลับมาตลอดเวลาเราไม่มีไซต์ asp.net 1.x และดูเหมือนว่าการอัปเดตหน้าต่างอัตโนมัติทุกครั้งจะทำให้โฟลเดอร์เปื้อนเลือดนี้ในทุกไซต์ดังนั้นจึงทำลายเว็บทั้งหมดของฉัน ฉันเห็นด้วยกับ @ Michael12345 ว่าไม่ใช่วิธีที่ดีในการเพิ่มโฟลเดอร์ที่ไร้ประโยชน์ไปยัง SC เพียงเพื่อให้การใช้งานยังคงทำงานต่อไปและไม่จำเป็นต้องแก้ไขด้วยตนเองทุกวันจันทร์หลังจากการอัปเดตการชนะในช่วงสุดสัปดาห์เพิ่มกลับเข้าไปในแต่ละไซต์ (ด้วยสิทธิ์ ACL ที่ไม่ถูกต้อง) . น่ารำคาญ!
MemeDeveloper

15

aspnet_client เป็นโฟลเดอร์สำหรับ "ทรัพยากรที่ต้องให้บริการผ่าน HTTP แต่ติดตั้งบนพื้นฐานต่อเซิร์ฟเวอร์แทนที่จะเป็นแบบต่อแอปพลิเคชัน"

การใช้ aspnet_client บางส่วนรวมถึงการจัดเก็บทรัพยากร (เช่น JavaScript, รูปภาพ) สำหรับ:

  • JavaScript สำหรับ ASP.NET Web Forms ควบคุมเมื่อใช้การตรวจสอบความถูกต้องฝั่งไคลเอ็นต์ (ดูเหมือนว่าจะจัดการกับเบราว์เซอร์รุ่นเก่าเช่น IE5 เป็นหลัก)
  • ASP.NET 2.0 (จนถึงกรอบ 4.0) สำหรับ 'ธีมทั่วโลก' (ทั่วโลกไปยังไซต์ทั้งหมดบนเซิร์ฟเวอร์นั่นคือ)
  • Crystal Reports บางเวอร์ชัน

อาจมีการใช้ / will-be เพิ่มเติม (ab) ของโฟลเดอร์นี้ในอนาคต ไม่จำเป็นต้องพูดเนื่องจากมันมีสิ่งที่ "จำเป็นสำหรับแอปพลิเคชันให้ทำงานได้อย่างถูกต้อง" แต่แอปพลิเคชันที่ "ไม่ควรนำไปใช้งาน" จะยังคงเป็นฝันร้ายสำหรับทั้งนักพัฒนาและผู้ดูแลระบบ

ดูเหมือนว่า 'ต้นแบบ' สำหรับเนื้อหาของโฟลเดอร์จะอยู่ใน C: \ inetpub \ wwwroot \ และดูเหมือนว่าสมเหตุสมผลที่จะสมมติว่าหากเว็บไซต์ IIS ใด ๆ ไม่มีทรัพยากร / aspnet_client IIS จะพยายามทำสิ่งที่ถูกต้อง และ ... เป็นทางเลือกสุดท้าย ... สร้างโฟลเดอร์จริงในโฟลเดอร์รูทของเว็บไซต์และคัดลอกไฟล์ที่นั่น ดูเหมือนว่า IIS จะทำสิ่งนี้อย่างน้อยเมื่อมีการเรียกใช้ "ASPNET_regiis / c" ในเซิร์ฟเวอร์ที่กำหนดซึ่งอาจเกิดขึ้นโดยอัตโนมัติที่จุดเชื่อมต่อที่สำคัญบางอย่าง ... เช่นเมื่อมีการใช้การอัปเดตกรอบงาน. NET กับเซิร์ฟเวอร์ที่มีบทบาท IIS

กลยุทธ์ในการจัดการไดเร็กทอรี aspnet_client ได้แก่ : * การระบุไดเร็กทอรีเสมือนที่แมปกับ C: \ inetpub \ wwwroot โดยหวังว่า IIS จะละทิ้งการสร้างไดเร็กทอรีฟิสิคัล * ลบไดเร็กทอรีฟิสิคัลเป็นครั้งคราวหากคุณแน่ใจว่าไซต์ของคุณไม่ ' ไม่จำเป็นต้องใช้และมันรบกวนคุณจริงๆ * ละเว้น aspnet_client * ที่เรียกใช้ "ASPNET_regiis / c" ด้วยตัวคุณเองหากคุณไม่มีโฟลเดอร์และต้องการ

ที่สำคัญที่สุดคือในฐานะนักพัฒนาคุณควรทำความเข้าใจอย่างชัดเจนและบันทึกการอ้างอิงของแอปพลิเคชันของคุณบนไดเร็กทอรี aspnet_client และตรวจสอบให้แน่ใจว่าขั้นตอนการติดตั้งของคุณมีคำแนะนำที่เกี่ยวข้องเพื่อให้แน่ใจว่ามีไดเร็กทอรีอยู่ อย่างไรก็ตามคุณไม่ควรกังวลที่จะจัดหาจริงๆไดเร็กทอรีเป็นส่วนหนึ่งของเว็บแอปพลิเคชันหรือเว็บไซต์แบบแพ็กเกจของคุณคุณจะทำสิ่งนี้ได้อย่างไรสำหรับเฟรมเวิร์ก. NET แต่ละเวอร์ชันซึ่งเซิร์ฟเวอร์จะเห็นตลอดอายุการใช้งานของแอปพลิเคชันของคุณ!

บางลิงค์ฉันจะกลับมาในภายหลัง:


ดังนั้นถ้าคุณเพิ่มโฟลเดอร์ aspnet_client ภายใต้ Wwwroot เนื้อหาของมันจะถูกคัดลอกไปยังแต่ละเว็บแอปที่คุณติดตั้งผมคิดว่า
จอร์จ Birbilis

8

นอกจากนี้ยังมีไอคอนและสคริปต์บางอย่างที่จำเป็นสำหรับรายงานคริสตัลเพื่อให้ทำงานได้อย่างถูกต้องแม้ในเวอร์ชันที่ช้ากว่า 1.1


ใช่พบวิธีนี้ยาก ฉันย้ายอินสแตนซ์ Ripplestone ของเราจากไดเร็กทอรีเสมือนภายใต้เว็บไซต์เริ่มต้นไปยังเว็บไซต์ของตัวเองและทุกอย่างเริ่มแปลก ๆ ใน Ripplestone ฉันดูคอนโซล javascript และเห็นว่ามันกำลังมองหาสิ่งต่างๆภายใต้C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13 ไม่แน่ใจว่าเป็นสิ่งที่ถูกต้องหรือไม่ แต่ฉันเพิ่งคัดลอกโฟลเดอร์ aspnet_client ทั้งหมดจากรูทไปยังไดเร็กทอรีอินสแตนซ์ Ripplestone ของฉัน
Adam Nofsinger

3

โฟลเดอร์นี้มีไว้สำหรับจัดเก็บ Javascript ฝั่งไคลเอ็นต์ซึ่ง ASP.NET ใช้สำหรับการตรวจสอบความถูกต้อง

ควรจะลบได้อย่างปลอดภัย


1

คิดว่าฉันจะเพิ่มสิ่งนี้ที่นี่เพราะนี่คือลิงค์ที่ฉันถูกนำไปยังเมื่อฉัน googled คำถามนี้ เห็นได้ชัดว่ามี. NET 4.0 และใหม่กว่าโฟลเดอร์นี้ไม่จำเป็นอีกต่อไปและสามารถลบออกได้โดยไม่มีปัญหา


0

ถ้าคุณใช้ Installshield เพื่อกำหนดค่าเว็บไซต์ ASP.net โปรดทราบว่าคุณลักษณะนี้มีอยู่ใน Installshield 2010 และไม่มีใน Installshield 2012 ติดตั้งกระจกหน้ารถ 2010 Vs 2012


คุณสมบัติบางอย่างไม่มีอยู่ใน IS2010 ลองใช้เวอร์ชันก่อนหน้าเพิ่มเติม
วิษณุประสานท
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.