การติดตั้งบริการ windows เดียวกันหลายอินสแตนซ์บนเซิร์ฟเวอร์
ดังนั้นเราจึงได้ผลิตบริการ windows เพื่อป้อนข้อมูลไปยังแอปพลิเคชันไคลเอนต์ของเราและทุกอย่างจะดีมาก ไคลเอนต์ได้มาพร้อมกับการร้องขอการกำหนดค่าที่สนุกสนานซึ่งต้องใช้สองอินสแตนซ์ของบริการนี้ที่ทำงานบนเซิร์ฟเวอร์เดียวกันและกำหนดค่าให้ชี้ไปที่ฐานข้อมูลแยกกัน จนถึงตอนนี้ฉันยังไม่สามารถทำให้สิ่งนี้เกิดขึ้นได้และหวังว่าสมาชิก stackoverflow เพื่อนของฉันอาจให้คำแนะนำบางอย่างว่าทำไม การตั้งค่าปัจจุบัน: ฉันได้ตั้งค่าโครงการที่มีบริการ windows แล้วเราจะเรียกมันว่า AppService นับจากนี้เป็นต้นไปและไฟล์ ProjectInstaller.cs ที่จัดการขั้นตอนการติดตั้งแบบกำหนดเองเพื่อตั้งชื่อบริการตามคีย์ใน App.config เช่นนั้น : this.serviceInstaller1.ServiceName = Util.ServiceName; this.serviceInstaller1.DisplayName = Util.ServiceName; this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem; ในกรณีนี้ Util เป็นเพียงคลาสสแตติกที่โหลดชื่อบริการจากไฟล์กำหนดค่า จากนี้ไปฉันได้ลองสองวิธีที่แตกต่างกันในการติดตั้งทั้งสองบริการและทั้งคู่ล้มเหลวในลักษณะเดียวกัน วิธีแรกเพียงแค่ติดตั้งสำเนาแรกของบริการคัดลอกไดเร็กทอรีที่ติดตั้งและเปลี่ยนชื่อจากนั้นเรียกใช้คำสั่งต่อไปนี้หลังจากแก้ไขการกำหนดค่าแอปเพื่อเปลี่ยนชื่อบริการที่ต้องการ: InstallUtil.exe /i AppService.exe เมื่อไม่ได้ผลฉันพยายามสร้างโครงการติดตั้งที่สองแก้ไขไฟล์กำหนดค่าและสร้างตัวติดตั้งตัวที่สอง เมื่อฉันรันโปรแกรมติดตั้งมันทำงานได้ดี แต่บริการไม่ปรากฏใน services.msc ดังนั้นฉันจึงรันคำสั่งก่อนหน้ากับฐานรหัสที่สองที่ติดตั้ง ทั้งสองครั้งฉันได้รับผลลัพธ์ต่อไปนี้จาก InstallUtil (เฉพาะส่วนที่เกี่ยวข้อง): เรียกใช้การติดตั้งที่ทำธุรกรรม เริ่มขั้นตอนการติดตั้งของการติดตั้ง การติดตั้งบริการ App Service Two ... …