WCF-ASP.NET Connection Error

Anonymous
2022-11-07T22:34:54.173+00:00

Hello, i have a problem with my WCF connection to my asp.net application.
I know that it is pretty much the same as a connection to a WPF app but somehow it wont start.

here my example code

WCF

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
[ServiceContract]
public interface IService1
{
[OperationContract]
IEnumerable<StudentItem> GetStudentFromClass(String className);

    [OperationContract]  
    StudentItem GetStudentByMatNr(String matNr);  

    [OperationContract]  
    IEnumerable<StudentItem> GetStudentsByName(String name);  

    [OperationContract]  
    IEnumerable<StudentItem> GetAll();  

    // TODO: Add your service operations here  
}  

[DataContract]  
public class StudentItem  
{  
    [DataMember]  
    public String MatrikelNr { get; set; }  
    [DataMember]  
    public String Vorname { get; set; }  
    [DataMember]  
    public String Nachname { get; set; }  
    [DataMember]  
    public String Strasse { get; set; }  
    [DataMember]  
    public String Ort { get; set; }  
    [DataMember]  
    public String Telefonnr { get; set; }  
    [DataMember]  
    public String Email { get; set; }  
    [DataMember]  
    public String Klasse { get; set; }  
    [DataMember]  
    public DateTime? Geburtsdatum { get; set; }  
    [DataMember]  
    public int? Plz { get; set; }  

    public StudentItem(Student student)  
    {  
        this.MatrikelNr = student.MatrikelNr;  
        this.Vorname = student.Vorname;  
        this.Nachname = student.Nachname;  
        this.Strasse = student.Strasse;  
        this.Ort = student.Ort;  
        this.Telefonnr = student.TelefonNr;  
        this.Email = student.EMail;  
        this.Klasse = student.Klasse;  
        this.Geburtsdatum = student.Geburtsdatum;  
        this.Plz = student.PLZ;  
    }  

    public StudentItem()  
    {  

    }  
}  

WCF SVC
public class Service1 : IService1
{
StudentItemEntities studentItemEntities = new StudentItemEntities();

    public IEnumerable<StudentItem> GetAll()  
    {  
        var query = from Student  
                    in studentItemEntities.Student  
                    select new StudentItem  
                    {  
                        MatrikelNr = Student.MatrikelNr,  
                        Vorname = Student.Vorname,  
                        Nachname = Student.Nachname,  
                        Strasse = Student.Strasse,  
                        Ort = Student.Ort,  
                        Telefonnr = Student.TelefonNr,  
                        Email = Student.EMail,  
                        Klasse = Student.Klasse,  
                        Geburtsdatum = Student.Geburtsdatum,  
                        Plz = Student.PLZ  
                    };  

        return query;  
    }  

    public StudentItem GetStudentByMatNr(string matNr)  
    {  
        var query = from Student  
        in studentItemEntities.Student  
                    where Student.MatrikelNr.Equals(matNr)  
                    select new StudentItem  
                    {  
                        MatrikelNr = Student.MatrikelNr,  
                        Vorname = Student.Vorname,  
                        Nachname = Student.Nachname,  
                        Strasse = Student.Strasse,  
                        Ort = Student.Ort,  
                        Telefonnr = Student.TelefonNr,  
                        Email = Student.EMail,  
                        Klasse = Student.Klasse,  
                        Geburtsdatum = Student.Geburtsdatum,  
                        Plz = Student.PLZ  
                    };  
        StudentItem studentItem = (StudentItem)query;  
        return studentItem;  
    }  

    public IEnumerable<StudentItem> GetStudentFromClass(string className)  
    {  
        var query = from Student  
                    in studentItemEntities.Student  
                    where Student.Klasse.Equals(className)  
                    select new StudentItem  
                    {  
                        MatrikelNr = Student.MatrikelNr,  
                        Vorname = Student.Vorname,  
                        Nachname = Student.Nachname,  
                        Strasse = Student.Strasse,  
                        Ort = Student.Ort,  
                        Telefonnr = Student.TelefonNr,  
                        Email = Student.EMail,  
                        Klasse = Student.Klasse,  
                        Geburtsdatum = Student.Geburtsdatum,  
                        Plz = Student.PLZ  
                    };  

        return query;  
    }  

    public IEnumerable<StudentItem> GetStudentsByName(string name)  
    {  
        var query = from Student  
        in studentItemEntities.Student  
                    where (Student.Vorname.Equals(name) || Student.Nachname.Equals(name))  
                    select new StudentItem  
                    {  
                        MatrikelNr = Student.MatrikelNr,  
                        Vorname = Student.Vorname,  
                        Nachname = Student.Nachname,  
                        Strasse = Student.Strasse,  
                        Ort = Student.Ort,  
                        Telefonnr = Student.TelefonNr,  
                        Email = Student.EMail,  
                        Klasse = Student.Klasse,  
                        Geburtsdatum = Student.Geburtsdatum,  
                        Plz = Student.PLZ  
                    };  

        return query;  
    }  
}  

ASP.NET CS
public partial class WebForm1 : System.Web.UI.Page
{
private ServiceReference1.IService1 client = new ServiceReference1.Service1Client();

    protected void Page_Load(object sender, EventArgs e)  
    {  
        GridView1.DataSource = client.GetAll();  
        GridView1.DataBind();  
    }  
}  

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server"></asp:GridView>
</form>
</body>
</html>

WPF

<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<DataGrid x:Name="grid" HorizontalAlignment="Left" Height="288" Margin="10,121,0,0" VerticalAlignment="Top" Width="772" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding MatrikelNr}" ClipboardContentBinding="{x:Null}" Header="MatrikelNr"/>
<DataGridTextColumn Binding="{Binding Vorname}" ClipboardContentBinding="{x:Null}" Header="Vorname"/>
<DataGridTextColumn Binding="{Binding Nachname}" ClipboardContentBinding="{x:Null}" Header="Nachname"/>
<DataGridTextColumn Binding="{Binding Strasse}" ClipboardContentBinding="{x:Null}" Header="Strasse"/>
<DataGridTextColumn Binding="{Binding Ort}" ClipboardContentBinding="{x:Null}" Header="Ort"/>
<DataGridTextColumn Binding="{Binding TelefonNr}" ClipboardContentBinding="{x:Null}" Header="Telefonnummer"/>
<DataGridTextColumn Binding="{Binding EMail}" ClipboardContentBinding="{x:Null}" Header="EMail"/>
<DataGridTextColumn Binding="{Binding Klasse}" ClipboardContentBinding="{x:Null}" Header="Klasse"/>
<DataGridTextColumn Binding="{Binding Geburtsdatum}" ClipboardContentBinding="{x:Null}" Header="Geburtsdatum"/>
<DataGridTextColumn Binding="{Binding Plz}" ClipboardContentBinding="{x:Null}" Header="Plz"/>
</DataGrid.Columns>
</DataGrid>
<TextBox x:Name="textbox" HorizontalAlignment="Left" Margin="104,62,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
<Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="327,61,0,0" VerticalAlignment="Top" Click="button_Click"/>
</Grid>
</Window>

/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private ServiceReference1.IService1 client = new ServiceReference1.Service1Client();

    public MainWindow()  
    {  
        InitializeComponent();  
        Update();  

    }  

    public void Update()  
    {  
        var text = this.textbox.Text;  
        var filter = new StudentItem  
        {  
            Klasse = text  
        };  
        var data = client.GetStudentFromClass(filter.Klasse);  
        this.grid.ItemsSource = data;  
    }  

    private void button_Click(object sender, RoutedEventArgs e)  
    {  
        Update();  
    }  
}  

XML VERSION
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Xml.Linq;

namespace XMLService
{
// HINWEIS: Mit dem Befehl "Umbenennen" im Menü "Umgestalten" können Sie den Schnittstellennamen "IService1" sowohl im Code als auch in der Konfigurationsdatei ändern.
[ServiceContract]
public interface IService1
{

    [OperationContract]  
    string GetData(int value);  

    [OperationContract]  
    CompositeType GetDataUsingDataContract(CompositeType composite);  

    [OperationContract]  
    int GetAnzInteressenten(string id);  

    [OperationContract]  
    IEnumerable<InteressentDTO> GetAllInteressenten(string id);  

    [OperationContract]  
    void UpdateInteressenten();  
}  


// 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; }  
    }  
}  

[DataContract]  
public class InteressentDTO  
{  
    [DataMember]  
    internal string mail { get; set; }  
    [DataMember]  
    public string ID { get; set; }  
    [DataMember]  
    public string Vorname { get; set; }  
    [DataMember]  
    public string Nachname { get; set; }  
}  

}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Xml.Linq;

namespace XMLService
{
// HINWEIS: Mit dem Befehl "Umbenennen" im Menü "Umgestalten" können Sie den Klassennamen "Service1" sowohl im Code als auch in der SVC- und der Konfigurationsdatei ändern.
// HINWEIS: Wählen Sie zum Starten des WCF-Testclients zum Testen dieses Diensts Service1.svc oder Service1.svc.cs im Projektmappen-Explorer aus, und starten Sie das Debuggen.
public class Service1 : IService1
{
XElement xelement = XElement.Load(@"BildungsmesseData.xml");

    public IEnumerable<InteressentDTO> GetAllInteressenten(string id)  
    {  
        List<InteressentDTO> list = new List<InteressentDTO>();  

        XElement bildungsmesse = (from element in xelement.Elements("Bildungsmesse")  
                                  where element.Attribute("ID").Value.Equals(id)  
                                  select element).FirstOrDefault();  

        XElement ausstellungstage = (from element in bildungsmesse.Elements("Ausstellungstage")  
                                     select element).FirstOrDefault();  

        foreach (XElement ausstellungstag in ausstellungstage.Elements("Ausstellungstag"))  
        {  
            var query = from element in ausstellungstag.Elements("Interessent")  
                        select new InteressentDTO  
                        {  
                            ID = element.Attribute("ID").Value,  
                            Vorname = element.Attribute("Vorname").Value,  
                            Nachname = element.Attribute("Nachname").Value,  
                            mail = element.Attribute("mail").Value  
                        };  
            list.AddRange(query);  
        }  

        return list;  
    }  

    public int GetAnzInteressenten(string id)  
    {  
        int anz = 0;  

        XElement bildungsmesse = (from element in xelement.Elements("Bildungsmesse")  
                                  where element.Attribute("ID").Value.Equals(id)  
                                  select element).FirstOrDefault();  

        XElement ausstellungstage = (from element in bildungsmesse.Elements("Ausstellungstage")  
                                     select element).FirstOrDefault();  

        foreach(XElement ausstellungstag in ausstellungstage.Elements("Ausstellungstag"))  
        {  
            anz += (from element in ausstellungstag.Elements("Interessent")  
                    select element).Count();  
        }  

        return anz;  
    }  

    public string GetData(int value)  
    {  
        return string.Format("You entered: {0}", value);  
    }  

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

    public void UpdateInteressenten()  
    {  
        var inter = new XElement("Interessent",  
            new XAttribute("ID", "100"),  
            new XAttribute("Vorname", "Fabian"),  
            new XAttribute("Nachname", "Knasmueller"),  
            new XAttribute("mail", "fabian@gmail.com"));  

        XElement bildungsmesse = (from element in xelement.Elements("Bildungsmesse")  
                                  where element.Attribute("ID").Value.Equals("1")  
                                  select element).FirstOrDefault();  

        XElement ausstellungstage = (from element in bildungsmesse.Elements("Ausstellungstage")  
                                     select element).FirstOrDefault();  

        XElement ausstellungstag = (from element in ausstellungstage.Elements("Ausstellungstag")  
                                    select element).FirstOrDefault();  

        ausstellungstag.Add(inter);  
        xelement.Save(@"BildungsmesseData.xml");  
    }  
}  

}

<?xml version="1.0" encoding="UTF-8"?>

-<Bildungsmessen>

-<Bildungsmesse ID="1">

<Ort>Wels</Ort>

<Datum>10.10.2018</Datum>

-<Ausstellungstage>

-<Ausstellungstag Nummer="1">

<Interessent ID="1" mail="levison@réalisations .com" Nachname="Irvine" Vorname="Levison"/>

<Interessent ID="2" mail="geraint@Mahato, Ganesh .at" Nachname="Boyd" Vorname="Geraint"/>

<Interessent ID="3" mail="tomi@Stuff .com" Nachname="Summers" Vorname="Tomi"/>

<Interessent ID="4" mail="ifanwade@Stuff .com" Nachname="Wade" Vorname="Ifan"/>

<Interessent ID="5" mail="orsodav@harsh.com .com" Nachname="Davison" Vorname="Orson"/>

<Interessent ID="6" mail="charleigh@Mahato, Ganesh .at" Nachname="Burrows" Vorname="Charleigh"/>

<Interessent ID="7" mail="esme@réalisations .com" Nachname="Squires" Vorname="Esme-Rose"/>

</Ausstellungstag>

</Ausstellungstage>

</Bildungsmesse>

-<Bildungsmesse ID="2">

<Ort>Perg</Ort>

<Datum>16.11.2018</Datum>

-<Ausstellungstage>

-<Ausstellungstag Nummer="1">

<Interessent ID="1" mail="usama@Stuff .com" Nachname="Bloggs" Vorname="Usama"/>

<Interessent ID="2" mail="adinacarrillo@réalisations .com" Nachname="Carrillo" Vorname="Adina"/>

<Interessent ID="3" mail="vickixiong@harsh.com .com" Nachname="Xiong" Vorname="Vicki"/>

<Interessent ID="4" mail="matildaroman@Stuff .com" Nachname="Roman" Vorname="Matilda"/>

</Ausstellungstag>

-<Ausstellungstag Nummer="2">

<Interessent ID="1" mail="eduardmartins@Stuff .com" Nachname="Martins" Vorname="Eduard"/>

<Interessent ID="2" mail="edan.mcgee@Stuff .com" Nachname="Mcgee" Vorname="Edan"/>

<Interessent ID="3" mail="wilkins@Stuff .com" Nachname="Wilkins" Vorname="Mathias"/>

<Interessent ID="4" mail="rc@harsh.com .com" Nachname="Combs" Vorname="Roan"/>

<Interessent ID="5" mail="sheilahatfield@Mahato, Ganesh .at" Nachname="Hatfield" Vorname="Sheila"/>

<Interessent ID="6" mail="isail@Stuff .com" Nachname="Fernandez" Vorname="Ismail"/>

<Interessent ID="7" mail="a.c@réalisations .com" Nachname="Callaghan" Vorname="Arianna"/>

<Interessent ID="8" mail="krstofer.sellers@Stuff .com" Nachname="Sellers" Vorname="Kristofer"/>

<Interessent ID="9" mail="tj@Mahato, Ganesh .com" Nachname="Kemp" Vorname="Tj"/>

</Ausstellungstag>

</Ausstellungstage>

</Bildungsmesse>

</Bildungsmessen>

SAMPLE INSERT

insert authors
values('409-56-7008', 'Bennet', 'Abraham', '415 658-9932',
'6223 Bateman St.', 'Berkeley', 'CA', '94705', 1)

.NET
.NET
Microsoft Technologies based on the .NET software framework.
3,396 questions
{count} votes