Laden...

.svc lässt sich nicht aufrufen

Erstellt von moep2k1 vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.952 Views
M
moep2k1 Themenstarter:in
2 Beiträge seit 2011
vor 13 Jahren
.svc lässt sich nicht aufrufen

Hallo,

dies ist mein erster Post in eurem Forum und muss euch sagen ihr seid echt super, das Forum hat mir bereits immer sehr geholfen.

Heute muss ich auch mal etwas fragen, da ich echt am verzweifeln bin.
Dazu muss ich sagen, dass ich mich erst seit 2 Wochen mit C# rumschlage, aber ich lerne schnell.

Jetzt aber zum Problem.

Ich habe versucht eine Webanwendung für ASP.NET Dynamic Data Enteties zu erstellen.
Dazu habe ich dann im Projektmappen-Explorer ein Element hinzugefügt und zwar das ADO.NET Entety Data Model und ein weiteres Element, den WCF Dienst.

Datenbankanbindung klapt alles. Habe dann den Code angepasst auf die Enteties, soweit alles gut.
Wenn ich aber versuche das Ding zu starten, dann kann ich mir die Site anschauen und und sehe auch die Tabellen, aber wenn ich versuche die WCFDataService1.svc aufzurufen bekomme ich nur einen Fehler.

Fehlermeldung:
Fehler bei der Verarbeitung der Anforderung auf dem Server. Weitere Informationen finden Sie in den Serverprotokollen.

Ich habe keine Ahnung was das bedeuten soll und kann auch nirgends was in den Protokolen finden.
Ich hoffe Ihr könnt mir helfen.
Den Code Hänge ich mit ran.

Vielen vielen Dank schonmal

Global.asax

 using System;
using System.ComponentModel.DataAnnotations;
using System.Web;
using System.Web.DynamicData;
using System.Web.Routing;

namespace DBHTTPSrv
{
public class Global : System.Web.HttpApplication
{
private static MetaModel s_defaultModel = new MetaModel();
public static MetaModel DefaultModel
{
get
{
return s_defaultModel;
}
}

public static void RegisterRoutes(RouteCollection routes)
{
// WICHTIG: REGISTRIERUNG DES DATENMODELLS
// Kommentar für diese Zeile entfernen, um ein ADO.NET Entity Framework-Modell für ASP.NET Dynamic Data zu registrieren.
// Legen Sie ScaffoldAllTables nur auf "true" fest, wenn Sie sicher sind, dass alle Tabellen im
// Datenmodell eine Gerüstbauansicht (d. h. Vorlagen) unterstützen sollen. Zur Verwaltung des Gerüstbaus für
// einzelne Tabellen muss eine Teilklasse für die Tabelle erstellt und das
// [ScaffoldTable(true)]-Attribut für die Teilklasse übernommen werden.
// Hinweis: Sie müssen "YourDataContextType" in den Namen der Datenkontextklasse
// in der Anwendung ändern.
DefaultModel.RegisterContext(typeof(SRSCRMEntities), new ContextConfiguration() { ScaffoldAllTables = true });

// Die folgende Anweisung unterstützt den Modus mit separaten Seiten, bei dem die Aufgaben Auflisten, Details anzeigen, Einfügen und
// Aktualisieren mithilfe von separaten Seiten ausgeführt werden. Zum Aktivieren des Modus muss der Kommentar für die folgende
// route-Definition entfernt werden. Zudem müssen die Kommentare für die route-Definitionen im folgenden Abschnitt für den combined-page-Modus entfernt werden.
routes.Add(new DynamicDataRoute("{table}/{action}.aspx")
{
Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),
Model = DefaultModel
});

// Die folgenden Anweisungen unterstützen den combined-page-Modus, bei dem die Aufgaben Auflisten, Details anzeigen, Einfügen und
// Aktualisieren mithilfe der gleichen Seite ausgeführt werden. Zum Aktivieren des Modus muss der Kommentar für die
// folgenden routes entfernt werden. Zudem muss der Kommentar für die route-Definition im vorherigen Abschnitt für den Modus mit separaten Seiten entfernt werden.
//routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") {
// Action = PageAction.List,
// ViewName = "ListDetails",
// Model = DefaultModel
//});

//routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") {
// Action = PageAction.Details,
// ViewName = "ListDetails",
// Model = DefaultModel
//});
}

void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}

}
}

WcfDataService1.svc

using System;
using System.Collections.Generic;
using System.Data.Services;
using System.Data.Services.Common;
using System.Linq;
using System.ServiceModel.Web;
using System.Web;

namespace DBHTTPSrv
{
 public class WcfDataService1 : DataService<SRSCRMEntities>
 {
 // Diese Methode wird nur einmal aufgerufen, um dienstweite Richtlinien zu initialisieren.
 public static void InitializeService(DataServiceConfiguration config)
 {
 // TODO: Regeln festlegen, die angeben, welche Entitätssets und welche Dienstvorgänge sichtbar, aktualisierbar usw. sind
 // Beispiele:
 config.SetEntitySetAccessRule("*", EntitySetRights.All);
 //config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
 config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
 }
 }
}
W
16 Beiträge seit 2008
vor 13 Jahren

Hi moep2k1

von welchen Typen ist dein Context abgeleitet "DbContext" oder "ObjectContext"?

Falls es von ObjectContext abgeleitet ist, müsstest du anders vorgehen. Welche Version von Entity Framework nutzt du, das neue 4.1 oder das 4.0?

Gruß
wreid

M
moep2k1 Themenstarter:in
2 Beiträge seit 2011
vor 13 Jahren

Ich weis nicht genau wo ich die Version auslesen kann.
Benutze VS 2010 Ultimate, mit .NET Framework 4 Vesrion 4.0.30319

Das meiste wurde von VS vorgegeben, habe dann nur die beiden Elemente eingefügt, Enteties angepasst, Datenbank angebunden und Tabellen freigegeben.

hier nochmal der Inhalt von der WcfDataService1.svc

 
<%@ ServiceHost Language="C#" Factory="System.Data.Services.DataServiceHostFactory, System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Service="DBHTTPSrv.WcfDataService1" %>
 

Wenn ich das richtig sehe, ist es ObjectContext.

W
16 Beiträge seit 2008
vor 13 Jahren

Hi

Füge bitte vor der Klasse WcfDataService1 folgenden Code:

     [ServiceBehavior(IncludeExceptionDetailInFaults = true)]
 

Damit erhällst du erweiterte Fehlermeldung.

Gruß
wreid