การ save source file ไว้บน Network Visual C# 2008
ปกติ ที่ผมเคยพัฒนาโปรแกรม บน Windows ด้วย Visual C# นั้น ผมจะ Save Project File ไว้ตาม Default เสมอก็คือ
My Documents\Visual Studio 2008\Projects
การใช้งาน บน Local ก็ไม่มีปัญหาอะไร เพราะว่าทำงานคนเดียวอยู่ แล้ว แต่พอ project ใหญ่ๆ ต้องทำงานหลายคน
จะต้อง เอา project file ไปไว้ที่ Network Drive
ปัญหาที่เจอก็คือ ไม่สามารถเปิด project ได้ครับ เนื่องจากว่าติืดสิทธิ ประมาณว่า ไม่ผ่าน Security Policy ของ .NET
ดังรูป
ปัญหาดังกล่าวเกิดจาก Security Policy ของ .NET สิ่งที่เราต้องทำคือ บอกให้ .NET รู้ว่า
ให้อนุญาติโปรแกรมของเราสามารถเรียกจาก Network Share ได้
สิ่งที่ต้องทำคือ
1. ทำการ Sign Assamblies เพื่อสร้าง รหัส Private Key ให้กับ Program โดยไปที่ Project Properties
แล้วเข้าำไปที่ Signing แล้ว Check ที่
Sign the ClickOnce Manifests กรณีไม่เคยมี ก็ สร้าง โดย Click ที่ Create Test Certificate..
หรือถ้ามี Key แล้ว ก็เลือก โดย Select from Store..
(ขั้นตอนดังกล่าว ทำใน Local Drive นะครับ)
เสร็จแล้ว ก็ ทำการ Save Project แล้ว นำไปวางไว้บน Network Drive ทำการ Set Permissionให้เรียบร้อย
จากนั้น ก็ ใช้ Tools ของ .NET ทำการ SET Security Policy ให้กับ เครื่อง Client ที่จะ Connect ไปที่ Project File บน Server
Tools ที่ว่าคือ Caspol.exe (Code Access Security Policy Tool )
มันมีอยู่แล้วถ้าลง .NET Framwork 2.0
ตัวไฟล์ จะอยู่ที่ Path %WINDIR%\Microsoft.NET\Framework\v2.0.50727\
ให้เรียกใช้งาน ผ่าน Command line วิธีการก็เปิด Dos ขึ้นมา แล้ว พิมพ์ คำสั่ง
>cd %WINDIR%\Microsoft.NET\Framework\v2.0.50727\
parameter ที่ใช้บ่อยๆ ก็มี
-lg หรือ -listgroups ใช้เพื่อดูว่ามี Security Zone Group มี อะไรบ้าง
ผลคือ
1.1. Zone - MyComputer: FullTrust
1.2. Zone - Intranet: LocalIntranet
1.3. Zone - Internet: Internet
1.4. Zone - Untrusted: Nothing
1.5. Zone - Trusted: Internet
ถ้า เก็บ Source Code ไว้ใน LAN เราจะอยู่ใน Zone 1.2
ต่อไป เป็น Parameter ในการ Add เข้า Zone
-machine -addgroup zone -url \\netserver\sharpath\* LocalIntranet
ส่วนคำสั่งเพิ่มเติมอ่านได้ที่
http://msdn.microsoft.com/en-us/library/cb6t8dtz.aspx
เท่านี้เครื่อง Client ก็สามารถ เปิด Source Code ได้จาก Network Drive ได้แล้วครับ
แต่ถ้ามีหลายเครื่อง ก็ต้องทำแบบนี้ทุกเครื่องนะครับ
คราวหน้า ผมจะมาพูดถึง วิธีการทำงานด้วยกัน ด้วย SubVersion บน Visual Studio 2008 ครับ
My Documents\Visual Studio 2008\Projects
การใช้งาน บน Local ก็ไม่มีปัญหาอะไร เพราะว่าทำงานคนเดียวอยู่ แล้ว แต่พอ project ใหญ่ๆ ต้องทำงานหลายคน
จะต้อง เอา project file ไปไว้ที่ Network Drive
ปัญหาที่เจอก็คือ ไม่สามารถเปิด project ได้ครับ เนื่องจากว่าติืดสิทธิ ประมาณว่า ไม่ผ่าน Security Policy ของ .NET
ดังรูป
ปัญหาดังกล่าวเกิดจาก Security Policy ของ .NET สิ่งที่เราต้องทำคือ บอกให้ .NET รู้ว่า
ให้อนุญาติโปรแกรมของเราสามารถเรียกจาก Network Share ได้
สิ่งที่ต้องทำคือ
1. ทำการ Sign Assamblies เพื่อสร้าง รหัส Private Key ให้กับ Program โดยไปที่ Project Properties
แล้วเข้าำไปที่ Signing แล้ว Check ที่
Sign the ClickOnce Manifests กรณีไม่เคยมี ก็ สร้าง โดย Click ที่ Create Test Certificate..
หรือถ้ามี Key แล้ว ก็เลือก โดย Select from Store..
(ขั้นตอนดังกล่าว ทำใน Local Drive นะครับ)
เสร็จแล้ว ก็ ทำการ Save Project แล้ว นำไปวางไว้บน Network Drive ทำการ Set Permissionให้เรียบร้อย
จากนั้น ก็ ใช้ Tools ของ .NET ทำการ SET Security Policy ให้กับ เครื่อง Client ที่จะ Connect ไปที่ Project File บน Server
Tools ที่ว่าคือ Caspol.exe (Code Access Security Policy Tool )
มันมีอยู่แล้วถ้าลง .NET Framwork 2.0
ตัวไฟล์ จะอยู่ที่ Path %WINDIR%\Microsoft.NET\Framework\v2.0.50727\
ให้เรียกใช้งาน ผ่าน Command line วิธีการก็เปิด Dos ขึ้นมา แล้ว พิมพ์ คำสั่ง
>cd %WINDIR%\Microsoft.NET\Framework\v2.0.50727\
parameter ที่ใช้บ่อยๆ ก็มี
-lg หรือ -listgroups ใช้เพื่อดูว่ามี Security Zone Group มี อะไรบ้าง
ผลคือ
1.1. Zone - MyComputer: FullTrust
1.2. Zone - Intranet: LocalIntranet
1.3. Zone - Internet: Internet
1.4. Zone - Untrusted: Nothing
1.5. Zone - Trusted: Internet
ถ้า เก็บ Source Code ไว้ใน LAN เราจะอยู่ใน Zone 1.2
ต่อไป เป็น Parameter ในการ Add เข้า Zone
-machine -addgroup zone -url \\netserver\sharpath\* LocalIntranet
ตัวอย่าง คำสั่ง>Caspol -machine -addgroup zone -url \\netserver\sharpath\* LocalIntranet
ส่วนคำสั่งเพิ่มเติมอ่านได้ที่
http://msdn.microsoft.com/en-us/library/cb6t8dtz.aspx
เท่านี้เครื่อง Client ก็สามารถ เปิด Source Code ได้จาก Network Drive ได้แล้วครับ
แต่ถ้ามีหลายเครื่อง ก็ต้องทำแบบนี้ทุกเครื่องนะครับ
คราวหน้า ผมจะมาพูดถึง วิธีการทำงานด้วยกัน ด้วย SubVersion บน Visual Studio 2008 ครับ
ความคิดเห็น
แสดงความคิดเห็น