Gewusst wie: Senden und empfangen binäre Dateien mit einem ASP.NET-Webdienst und Visual c# .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 318425 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

In diesem Artikel veranschaulicht das Erstellen eines Webdienstes und eines Webdienstclients senden und empfangen binäre Dokumente mithilfe von Microsoft ASP.NET und Microsoft Visual c# .NET. Sie können ASP.NET und Visual c# .NET verwenden, um einen Webdienst erstellen, der sowohl binäre Dokumente in einem Ordner auf einem Webserver speichert und binäre Dokumente aus einem Ordner auf einem Webserver abgerufen. Sie können diesen Dienst als ein einfaches Dokumentverwaltungssystem im Web verwenden.

Erstellen des Webdienstes

  1. Klicken Sie in Microsoft Visual Studio .NET im Menü Datei klicken Sie auf neu und klicken Sie dann auf Projekt .
  2. Wählen Sie in Visual C#-Projekte den ASP.NET-Webdienst . Geben oder http://localhost/DocumentManagementService für den Speicherort einfügen, und klicken Sie dann auf OK . Standardmäßig werden Service1.asmx wird erstellt und wird in der Entwurfsansicht angezeigt.
  3. Klicken Sie im Ansicht auf Code , um die Codeansicht für Service1.asmx anzuzeigen.
  4. Fügen Sie der Klasse "Service1" den folgenden WebMethods Code hinzu:
    
    [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;	
    } 
    					

    Hinweis: <root>Der Code speichert die Dokumente, die <stamm>: \\DocumentDirectory\\ Verzeichnispfad auf dem Server. Ändern Sie die Ordner auf Ihrem Webserver, in dem Sie die Dokumente speichern möchten.

  5. Fügen Sie den folgenden Namespace am Anfang von der Service1.asmx:
    using System.IO;
  6. Testen des Webdienstes:
    1. Klicken Sie auf im Menü Debuggen auf Starten , zum Starten des Webdienstes. Dies startet den Webbrowser, und die Hilfeseite Dienst Beschreibung angezeigt.
    2. Stellen Sie sicher, dass die Methoden SaveDocument , GetDocument und GetDocumentLen angezeigt.
    3. Schließen Sie das Web Browser-Fenster um Debuggen zu beenden.

Erstellen eines Clients für den Webdienst

  1. Klicken Sie in Visual Studio .NET im Menü Datei auf Projekt hinzufügen und dann auf Neues Projekt .
  2. Wählen Sie in der Liste Visual C#-Projekte die Option Windows-Anwendung , und klicken Sie dann auf OK . Standardmäßig wird jetzt Form1 erstellt.
  3. Fügen Sie einen Webverweis auf den Webdienst folgendermaßen:
    1. Klicken Sie im Projektmappen-Explorer mit der Maustaste auf das Client-Projekt-Element. Wählen Sie dann Webverweis hinzufügen im Kontextmenü .
    2. Im Dialogfeld Webverweis hinzufügen geben den URL der WSDL (Web Services Description Language)-Datei für den Webdienst, und drücken Sie anschließend die [EINGABETASTE].

      Hinweis: Der Standardspeicherort für die WSDL-Datei ist http://localhost/DocumentManagementService/Service1.asmx?WSDL.
    3. Klicken Sie im Dialogfeld Webverweis hinzufügen auf Verweis hinzufügen .
  4. Fügen Sie zwei Schaltflächen zu Form1 hinzu. Legen Sie die Text -Eigenschaft von button1 zu Dokument auf dem Server speichern . Legen Sie die Text -Eigenschaft des button2 Dokument vom Server abrufen .
  5. Doppelklicken Sie auf button1 und button2 Standard erstellen Click-Ereignishandler für die Schaltflächen.
  6. Ersetzen Sie die Ereignishandler durch den folgenden Code:
    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();
    }
    					
    Hinweis: die sFile Variable muss den lokale Pfad zu einem Dokument, die an den Server hochgeladen werden enthalten. Wenn das Dokument gedownloadet wird, wird in demselben Ordner platziert, und der Wert 2 wird auf den Dateinamen angefügt.

  7. Fügen Sie den folgenden Namespace am Anfang der Datei:
    using System.IO;
  8. Klicken Sie im Projektmappen-Explorer mit der Maustaste auf das Client-Projekt-Element. Klicken Sie dann als Startprojekt festlegen im Kontextmenü auf.

Probieren Sie es einfach

  1. Klicken Sie im Menü Debuggen auf Starten . Form1 wird angezeigt.
  2. Klicken Sie auf die Schaltfläche Dokument auf dem Server speichern . Dadurch wird die SaveDocument Webmethode aufzurufen. <root>Diese Webmethode speichert das lokale Dokument in der <stamm>: \DocumentDirectory\ Ordner auf dem Server. Nachdem Sie das Dokument übertragen haben, stellen Sie sicher, dass die Datei im Zielordner vorhanden ist.
  3. Klicken Sie auf die Schaltfläche Dokument vom Server abrufen . Dadurch wird die GetDocument Webmethode aufzurufen. <root>Diese Web-Methode ruft das Dokument aus der <stamm> ab: \DocumentDirectory\ Ordner auf dem Server. Das Dokument wird auf dem lokalen Laufwerk gespeichert, im Code angegeben ist.

Informationsquellen

Weitere Informationen finden Sie Microsoft Visual Studio .NET Dokumentation.

Eigenschaften

Artikel-ID: 318425 - Geändert am: Montag, 15. Dezember 2003 - Version: 4.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbmt kbhowtomaster KB318425 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 318425
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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