2016-07-08 4 views
0

Ich erstelle einen WCF-Webservice und in diesem Webservice verwende ich EF 6 (ausprobiert 5). Das Projekt kompiliert und läuft perfekt auf einem anderen Server (auch 2012R2).Entity FrameWork reagiert nicht von einem WCF-Webservice

In meiner Anwendung habe ich den Webservice eingerichtet, um asynchrone Methoden zu erstellen.

Bei der Verwendung des Webservice bekomme ich einen Fehler in Bezug auf die Konfigurationsdatei (ich habe nichts in dieser Konfigurationsdatei geändert), aber ich werde etwas später auf die Konfigurationsdatei zugreifen.

Wenn ich ein Beispielprogramm einrichte und nur "HelloWorld" anrufe, bekomme ich Hallo.

So funktioniert der Webservice an sich.

Wenn auf dem Server ich ein Testprogramm erstellen, das die gleiche Version von EF verwendet. Es klappt. Also kein Problem.

Aber wenn ich versuche, meinen Webservice mit einer Methode zu verwenden, die EF verwendet, passiert einfach nichts. e.result ist string.empty, auch wird kein Fehler zurückgegeben.

Wie ist der Fehler in der Datei web.config. Wenn ich den Webservice mit der ursprünglichen Konfigurationsdatei veröffentliche. Ich erhalte die folgenden Fehler WHE versuchen, den Webservice zu öffnen direkt aus dem Browser des Servers:

Fehler 500.19 Config Quelle: 4: Weitere Informationen über Entity Framework-Konfiguration finden Sie http://go.microsoft.com/fwlink/?LinkID=237468 5:
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections>

Es klagt eindeutig über den Namen Abschnitt entityFramework.

Wenn ich entityFramework in EntityFramework (also mit einem Großbuchstaben E) ändere, dann kann ich den Webservice direkt aus dem Browser meines Servers öffnen. Und jetzt kann ich es auch in meinen Programmen implementieren.

Wie erwähnt, funktioniert HelloWorld gut, aber es gibt immer noch ein Problem, wenn Sie versuchen, EntiTyFramework über diesen Webservice zu verwenden.

Gibt es eine Einstellung, die ich auf diesem Server vergessen habe? Wie schon erwähnt, wenn ich es auf einem anderen Server (mit der ursprünglichen Konfigurationsdatei) teste, als es funktioniert?

Ich habe auch VS2015 auf diesem Server eingerichtet und sogar das Projekt neu auf diesem Server erstellt. Es machte keinen Unterschied.

Ich hoffe, jemand kann mir sagen, was zu tun ist ??

+0

Ich habe einen ähnlichen Fehler mit meinem WCF-Service. Es gab "HTTP 500.19". Nachdem ich einen Tag lang mit dem Kopf geschlagen hatte, fand ich heraus, dass dies auf 'Ordnerberechtigungen 'auf dem Server zurückzuführen ist, auf dem der Dienst gehostet wird. es gewährte der Gruppe "IIS_IUSRS" (alle Anwendungspoolidentitäten) und dem Benutzer "IUSR" Lesezugriff auf den Ordner – Venky

Antwort

0

Ich fand das eigentliche Problem und eine Lösung für mich.

Auf dem Server, auf dem ich diesen Webservice installiert habe, habe ich ihn in einem Verzeichnis innerhalb einer Website installiert, wo auch die Website selbst Entity Framework verwendet.

IIS liest die Datei web.config aus diesem Webserice, aber intern fügt sie dies der web.config aus dem Stammverzeichnis hinzu (also web.config von der Website).

Der Konfigurationseditor in IIS für die Website beschwert sich über einen zweiten Eintrag mit dem Namen entityFramwork (und nur wenn Sie diese web.configs kombinieren würden, würden Sie das bekommen. Weil jede web.config nur einen Eintrag hat: entityFramework).

Da ich mehrere Websites auf diesem Server habe, habe ich einfach den Webservice auf einer Website installiert, die Entity Framwork nicht verwendet. Eh Voila, mein Problem ist vorbei.

Ich hoffe, jemand anderes kann davon profitieren, es kostet mich eine Menge Zeit, um dies herauszufinden.