Gewusst wie: Senden und Empfangen von binären Dokumente mit einer ASP.NET Web Service und Visual C# .NET

Zusammenfassung

Dieser Artikel veranschaulicht, wie ein Webdienst und ein Webdienstclient zum Senden und Empfangen von binären Dokumente mithilfe von Microsoft ASP.NET und Microsoft Visual C# .NET. Sie können ASP.NET und Visual C# .NET einen Webdienst erstellen, der binäre Dokumente in einem Ordner auf einem Webserver gespeichert und binäre Dateien aus einem Ordner auf einem Webserver abruft. Diesen Dienst können Sie als ein einfaches Dokumentverwaltungssystem im Web.


Erstellen Sie den Webdienst

  1. Microsoft Visual Studio .NET im Menü Datei auf neuund klicken Sie dann auf Projekt.
  2. Wählen Sie in Visual C#-Projekte ASP.NET Web Service. Geben Sie oder fügen Sie http://localhost/DocumentManagementService für den Speicherort, und klicken Sie auf OK. In der Standardeinstellung Service1.asmx wird erstellt und in der Entwurfsansicht angezeigt.
  3. Klicken Sie im Menü Ansicht auf Code , um die Codeansicht für Service1.asmx angezeigt.
  4. Der Service1-Klasseden folgenden Code des WebMethods hinzufügen:
    [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: Der Code speichert Dokumente < Stammverzeichnis >: \\DocumentDirectory\\ Pfad auf dem Server. Ändern Sie den Ordner auf dem Webserver speichern soll.

  5. Fügen Sie den folgenden Namespace an die Service1.asmx:
    using System.IO;
  6. Testen Sie den Webdienst:
    1. Klicken Sie im Menü Debuggen auf Starten , starten Sie den Webdienst. Dies startet den Webbrowser und Beschreibung der Hilfe angezeigt.
    2. Stellen Sie sicher, dass die Methoden SaveDocument GetDocumentund GetDocumentLen werden.
    3. Schließen Sie das Webbrowserfenster beenden.

Erstellen eines Clients für den Webdienst

  1. Klicken Sie in Visual Studio .NET im Menü Datei auf Projekt hinzufügenund klicken Sie dann auf Neues Projekt.
  2. Wählen Sie in der Liste Visual C#-Projekte , und klicken Sie dann auf OK. Standardmäßig wird Form1 erstellt.
  3. Fügen Sie einen Webverweis auf den Webdienst wie folgt:
    1. Klicken Sie im Projektmappen-Explorer auf die Client-Element. Wählen Sie im Kontextmenü auf Webverweis hinzufügen .
    2. Geben Sie im Dialogfeld Webverweis hinzufügen die URL der Web Services Description Language (WSDL)-Datei für den Webdienst und dann 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.
  4. Fügen Sie zu Form1 zwei Schaltflächen. Legen Sie die Text -Eigenschaft von button1 SpeicherDokument auf dem Server. Legen Sie die Text -Eigenschaft von button2 Dokument vom Server abrufen.
  5. Doppelklicken Sie auf button1 und button2 erstellen Click-Ereignishandler für die Schaltflächen.
  6. Ersetzen Sie die Ereignishandler durch 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 Datei %s mit Variable muss den lokale Pfad zu einem Dokument, die auf den Server hochgeladen werden. Beim Download des Dokuments wird im gleichen Ordner abgelegt und der Wert 2 an den Dateinamen angehängt.

  7. Fügen Sie am Anfang der Datei den folgenden Namespace hinzu:
    using System.IO;
  8. Klicken Sie im Projektmappen-Explorer auf die Client-Element. Wählen Sie dann im Kontextmenü auf als Startprojekt festlegen .

Probieren Sie es aus

  1. Klicken Sie im Menü Debuggen auf Starten. Form1 wird angezeigt.
  2. Klicken Sie auf die Schaltfläche Dokument Informationsspeicher auf dem Server. Dadurch wird die SaveDocument -Methode aufgerufen. Diese Webmethode speichert das lokale Dokument im < Stammverzeichnis >: \DocumentDirectory\ Ordner auf dem Server. Nach der Übertragung des Dokuments überprüfen Sie, ob die Datei im Zielordner vorhanden ist.
  3. Klicken Sie auf die Schaltfläche Dokument vom Server abrufen. Dadurch wird die GetDocument -Methode aufgerufen. Diese Webmethode Ruft das Dokument im < Stammverzeichnis >: \DocumentDirectory\ Ordner auf dem Server. Das Dokument wird auf der lokalen Festplatte gespeichert, die im Code angegeben ist.

Referenzen

Weitere Informationen finden Sie in der Dokumentation zu Microsoft Visual Studio .NET.

Eigenschaften

Artikelnummer: 318425 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

Feedback