Laden...

WCF und DataSet

Erstellt von byob vor 14 Jahren Letzter Beitrag vor 14 Jahren 3.377 Views
B
byob Themenstarter:in
148 Beiträge seit 2007
vor 14 Jahren
WCF und DataSet

Hi,

ich habe einen WCF Webservice:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Data;

namespace WcfService1
{
    // HINWEIS: Wenn Sie hier den Klassennamen "Service1" ändern, müssen Sie ebenfalls den Verweis auf "Service1" in "Web.config" und in der zugeordneten SVC-Datei aktualisieren.
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public DataSet getKunden()
        {
            DevDataSet ds = new DevDataSet();
            DevDataSetTableAdapters.userTableAdapter ta = new WcfService1.DevDataSetTableAdapters.userTableAdapter();
            ta.Fill(ds.user);
            return ds;
        }

        public String getTestText()
        {
            return "Dies ist ein Test";
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Data;

namespace WcfService1
{
    // HINWEIS: Wenn Sie hier den Schnittstellennamen "IService1" ändern, müssen Sie den Verweis auf "IService1" in "Web.config" ebenfalls aktualisieren.
    [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        string GetData(int value);

        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);

        // AUFGABE: Hier Dienstvorgänge hinzufügen
        [OperationContract]
        DataSet getKunden();

        [OperationContract]
        String getTestText();
    }


    // Verwenden Sie einen Datenvertrag, wie im folgenden Beispiel dargestellt, um Dienstvorgängen zusammengesetzte Typen hinzuzufügen.
    [DataContract]
    public class CompositeType
    {
        bool boolValue = true;
        string stringValue = "Hello ";

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

        [DataMember]
        public string StringValue
        {
            get { return stringValue; }
            set { stringValue = value; }
        }
    }
}

Und hier der Client:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Test
{
    public partial class Form1 : Form
    {
        HydraService.Service1Client web = new Test.HydraService.Service1Client();
        DataSet ds;
        public Form1()
        {
            InitializeComponent();
            ds = web.getKunden();
            //MessageBox.Show(web.getTestText());
            dataGridView1.DataSource = ds;
        }
    }
}

Wenn ich nun den Client ausführe, wird folgender Fehler geworfen:

Die zugrunde liegende Verbindung wurde geschlossen: Die Verbindung wurde unerwartet getrennt..

Hat jemand eine Idee, woran das liegen könnte?

Gruß
byob

B
byob Themenstarter:in
148 Beiträge seit 2007
vor 14 Jahren

Weiß keiner Rat? Ich biete auch n Euro 😉

3.728 Beiträge seit 2005
vor 14 Jahren
Host

Hallo byob,

ich sehe keinen Host-Code. Wo und wie hostest Du Deinen WCF-Dienst?

B
byob Themenstarter:in
148 Beiträge seit 2007
vor 14 Jahren

ich sehe keinen Host-Code. Wo und wie hostest Du Deinen WCF-Dienst?

Das Ding wird noch von dem Visual Studio Development Server gehostet.

(F5 - debugging)

Gruß
byob

H
240 Beiträge seit 2006
vor 14 Jahren

Ich bin nicht sicher, ob man ein DataSet einfach so versenden kann oder ob man dafür einen DataContract und KnownType braucht?

MfG hulkstar

3.728 Beiträge seit 2005
vor 14 Jahren
Dataset versenden

Ich bin nicht sicher, ob man ein DataSet einfach so versenden kann oder ob man dafür einen DataContract und KnownType braucht?

Ein DataSet kann man ohne weiteres versenden, da es Serializable ist.

Das Ding wird noch von dem Visual Studio Development Server gehostet.

Kann der WCF hosten?? Das ist aber wenn, dann nur zu Testzwecken geeignet. Aber dann bezieht er die Konfiguration aus der Web.config buw. App.config. Kannst bitte die Web.config/App.config vom Client und vom Server posten?

Auf welchen Port ist Dein ASP.NET Testserver eingestellt?