HOW TO: ส่ง และรับเอกสารไบนารี โดยการใช้การบริการเว็บ ASP.NET และ Visual c# .NET

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 318425 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้แสดงวิธีการสร้างเว็บเซอร์วิสและไคลเอ็นต์บริการเว็บการส่ง และรับเอกสารไบนารี โดยใช้ Microsoft ASP.NET และ Microsoft Visual c# .NET คุณสามารถใช้ ASP.NET และ Visual .NET c# เพื่อสร้างเว็บเซอร์วิสที่จะบันทึกเอกสารไบนารีไปยังโฟลเดอร์บนเว็บเซิร์ฟเวอร์ และดึงเอกสารไบนารีจากโฟลเดอร์บนเว็บเซิร์ฟเวอร์ คุณสามารถใช้บริการนี้เป็นระบบการจัดการเอกสารที่ธรรมดาบนเว็บ

สร้างการบริการเว็บ

  1. ในการแฟ้ม:คลิกที่เมนูใน Microsoft Visual Studio .NETใหม่แล้ว คลิกProject.
  2. ในแสดงโครงการ c#เลือกนั้นบริการเว็บ asp.net. ชนิดหรือวางhttp://localhost/DocumentManagementServiceสำหรับการตำแหน่ง:แล้ว คลิกตกลง. โดยค่าเริ่มต้น Service1.asmx ถูกสร้างขึ้น และแสดงในมุมมองออกแบบ
  3. ในการมุมมองเมนู คลิกรหัสเมื่อต้องการแสดงมุมมองโค้ดสำหรับ Service1.asmx
  4. เพิ่มรหัส WebMethods ต่อไปนี้ไปคลา Service1:
    
    [WebMethod]
    public bool SaveDocument( Byte[] docbinaryarray, string docname)
    {
    	string strdocPath;
    	strdocPath = "C:\\DocumentDirectory\\" + docname;
    	FileStream objfilestream =new FileStream(strdocPath,FileMode.Create,FileAccess.ReadWrite);
    	objfilestream.Write(docbinaryarray,0,docbinaryarray.Length);
    	objfilestream.Close();
    
    	return true;
    }
    
    [WebMethod]
    public int GetDocumentLen(string DocumentName)
    {
    	string strdocPath;
    	strdocPath = "C:\\DocumentDirectory\\" + DocumentName;
    
    	FileStream objfilestream = new FileStream(strdocPath,FileMode.Open,FileAccess.Read);
    	int len = (int)objfilestream.Length;			
    	objfilestream.Close();
    
    	return len;
    } 
    
    
    [WebMethod]
    public Byte[] GetDocument(string DocumentName)
    {
    	string strdocPath;
    	strdocPath = "C:\\DocumentDirectory\\" + DocumentName;
    
    	FileStream objfilestream = new FileStream(strdocPath,FileMode.Open,FileAccess.Read);
    	int len = (int)objfilestream.Length;			
    	Byte[] documentcontents  = new Byte[len];
    	objfilestream.Read(documentcontents,0,len);
    	objfilestream.Close();
    
    	return documentcontents;	
    } 
    					

    หมายเหตุ::รหัสจะบันทึกเอกสารไปยัง <root>: เส้นทางไดเรกทอรี \\DocumentDirectory\\ บนเซิร์ฟเวอร์ เปลี่ยนแปลงนี้ไปยังโฟลเดอร์บนเว็บเซิร์ฟเวอร์ที่คุณต้องการบันทึกเอกสาร</root>

  5. เพิ่ม namespace ที่ต่อไปนี้เพื่อเริ่มต้นของ Service1.asmx:
    using System.IO;
  6. ทดสอบการบริการเว็บ:
    1. ในการตรวจแก้จุดบกพร่องเมนู คลิกเริ่มการทำงานเมื่อต้องการเริ่มบริการเว็บ ซึ่งเริ่มการทำงานของเว็บเบราว์เซอร์ และปรากฏหน้าวิธีใช้ของคำอธิบายของบริการ
    2. ตรวจสอบให้แน่ใจว่าการSaveDocument,GetDocumentและGetDocumentLenวิธีการที่ปรากฏขึ้น
    3. ปิดหน้าต่างเบราว์เซอร์เว็บหยุดการตรวจแก้จุดบกพร่อง

สร้างแบบไคลเอ็นต์สำหรับบริการเว็บ

  1. ในการแฟ้ม:คลิกที่เมนูใน Visual Studio .NETเพิ่มโครงการแล้ว คลิกโครงการใหม่.
  2. ในการแสดงโครงการ c#รายการ การเลือกแอพลิเคชันของ windowsแล้ว คลิกตกลง. โดยค่าเริ่มต้นแล้ว Form1 จะถูกสร้างขึ้น
  3. เพิ่มการอ้างอิงเว็บไปยังบริการเว็บ เป็นดังนี้:
    1. ในโซลูชัน Explorer คลิกขวารายการโครงการของไคลเอ็นต์ แล้ว เลือกเพิ่มการอ้างอิงเว็บในการบริบทเมนู
    2. ในการเพิ่มการอ้างอิงเว็บกล่องโต้ตอบ พิมพ์ URL ไปยังแฟ้มภาษาในคำอธิบายบริการเว็บ (WSDL) สำหรับบริการเว็บ และกด enter

      หมายเหตุ::ตำแหน่งที่ตั้งเริ่มต้นสำหรับแฟ้ม WSDL จะ http://localhost/DocumentManagementService/Service1.asmx?WSDL
    3. ในการเพิ่มการอ้างอิงเว็บกล่องโต้ตอบ คลิกเพิ่มการอ้างอิง.
  4. เพิ่มปุ่มสองปุ่ม Form1 ตั้งค่านี้ข้อความคุณสมบัติของ button1 ไปเก็บเอกสารบนเซิร์ฟเวอร์. ตั้งค่านี้ข้อความคุณสมบัติของ button2 ไปเรียกเอกสารจากเซิร์ฟเวอร์.
  5. คลิกสองครั้งbutton1และbutton2เมื่อต้องการสร้างการเริ่มต้นคลิกตัวจัดการเหตุการณ์สำหรับปุ่ม
  6. แทนที่ตัวจัดการกับรหัสต่อไปนี้:
    string sFile = "<file path>";
    
    private void button1_Click(object sender, System.EventArgs e)
    {
    	FileStream objfilestream = new FileStream(sFile,FileMode.Open,FileAccess.Read);
    	int len = (int)objfilestream.Length;
    	Byte[] mybytearray = new Byte[len];
    	objfilestream.Read(mybytearray,0,len);
    	localhost.Service1 myservice = new localhost.Service1();
    	myservice.SaveDocument(mybytearray,sFile.Remove(0,sFile.LastIndexOf("\\")+1));
    	objfilestream.Close();
    }
    
    private void button2_Click(object sender, System.EventArgs e)
    {
    	MemoryStream objstreaminput = new MemoryStream();
    	FileStream objfilestream = new FileStream(sFile.Insert(sFile.LastIndexOf("."),"2"), FileMode.Create,FileAccess.ReadWrite);
    						
    	localhost.Service1 myservice = new localhost.Service1();
    	int len = (int)myservice.GetDocumentLen(sFile.Remove(0,sFile.LastIndexOf("\\")+1)); 
    	Byte[] mybytearray = new Byte[len];
    	mybytearray = myservice.GetDocument(sFile.Remove(0,sFile.LastIndexOf("\\")+1));
    	objfilestream.Write(mybytearray,0,len);
    	objfilestream.Close();
    }
    					
    หมายเหตุ::กระบวนการsFileตัวแปรต้องประกอบด้วยเส้นทางแฟ้มภายในเครื่องไปยังเอกสารที่จะสามารถอัปโหลดไปยังเซิร์ฟเวอร์ เมื่อเอกสารจะถูกดาวน์โหลด ถูกวางลงในโฟลเดอร์เดียวกัน และค่า2ถูกผนวกเข้ากับชื่อแฟ้ม

  7. เพิ่ม namespace ที่ต่อไปนี้ในตอนต้นของแฟ้ม:
    using System.IO;
  8. ในโซลูชัน Explorer คลิกขวารายการโครงการของไคลเอ็นต์ แล้ว เลือกตั้งค่าเป็นโครงการเริ่มต้นในการบริบทเมนู

ลองได้ไม่เพียงพอ

  1. ในการตรวจแก้จุดบกพร่องเมนู คลิกเริ่มการทำงาน. form1 ปรากฏขึ้น
  2. คลิกปุ่มติดป้ายชื่อเก็บเอกสารบนเซิร์ฟเวอร์. ซึ่งจะเรียกใช้การSaveDocumentวิธีการเว็บ วิธีนี้เว็บจะบันทึกเอกสารเฉพาะใน <root>: \DocumentDirectory\ โฟลเดอร์บนเซิร์ฟเวอร์ หลังจากที่คุณได้โอนย้ายเอกสาร ตรวจสอบว่า แฟ้มที่มีอยู่ในโฟลเดอร์ปลายทาง</root>
  3. คลิกปุ่มติดป้ายชื่อเรียกเอกสารจากเซิร์ฟเวอร์. ซึ่งจะเรียกใช้การGetDocumentวิธีการเว็บ วิธีการเว็บนี้เอกสารที่ดึงข้อมูลจาก <root>: \DocumentDirectory\ โฟลเดอร์บนเซิร์ฟเวอร์ บันทึกเอกสารในไดรฟ์ในระบบที่ระบุในรหัส</root>

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติม ให้ดูที่ Microsoft Visual Studio .NET เอกสาร

คุณสมบัติ

หมายเลขบทความ (Article ID): 318425 - รีวิวครั้งสุดท้าย: 13 มกราคม 2554 - Revision: 5.0
ใช้กับ
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbhowtomaster kbmt KB318425 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:318425

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com