ใช้เวลาหลายวันกว่าจะตั้ง SharePoint Provider-hosted App จนสามารถทำงานได้เสียที ก็ถึงเวลาต้องสรุปบทเรียนว่าต้องทำอย่างไรถึงจะใช้ได้
บทความที่เกี่ยวข้อง
ผมอ่าน 2 บทความต่อไปนี้
- Setting up a SharePoint 2013 Development Environment 101
- How to: Create high-trust apps for SharePoint 2013 using the server-to-server protocol (advanced topic)
แล้วก็ใช้ script ชื่อ PrepareS2SApp.ps1
ของ Andrew Connell (ฟรี แต่ต้องลงทะเบียน) ซึ่งได้ดัดแปลงเพิ่มไปนิดหน่อยให้ตรงตามขั้นตอนของบทความที่สอง (มันหายไปขั้นหนึ่ง)
ปัญหาที่พบและทางแก้
บนเครื่องนอก SharePoint: ในช่วงการพัฒนาบน IIS Express จะพบอาการ 401 (Unauthorized) ทำให้ไม่สามารถสั่ง clientContext.ExecuteQuery() ได้สำเร็จ อันนี้คาดว่าเกิดจากการใช้ IIS Express ซึ่งที่ถูกคือ ผมควรจะใช้ IIS จริงในการพัฒนาและทำการกำหนด host ที่เหมาะสมใน IIS และกำหนดให้ถูกต้องใน AppManifest.xml
บนเครื่อง SharePoint: สามารถพัฒนาได้ทันทีด้วย IIS Express แต่หากคุณใช้ User อื่นที่ไม่ใช่ Setup Admin คุณอาจจะประสบปัญหาติดตั้ง App ไม่สำเร็จ (ใน Event Viewer อาจจะขึ้นเตือนถึงการเข้าฐานข้อมูล AppManagement) อันนี้ผมให้สิทธิ์ User ที่ใช้พัฒนาเข้าถึงฐานข้อมูลนั้นแบบ db_owner
ไปเลยซึ่งก็ทำให้สามารถดำเนินการไปต่อได้