WCF-Dienst als Teil der MVC-Anwendung

8

Ich habe eine Webanwendung in MVC4. Ich werde einen Shared Hosting -Anbieter einrichten. Ich möchte es mit einem WCF-Dienst zum Hochladen von Dateien erweitern. (Es wird durch eine WPF-Desktop-Anwendung, mit der Benutzer Dateien direkt von ihren PCs hochladen können.)

Ich würde es lieber "zusammen" hosten, um Probleme mit dem Lese- / Schreibzugriff auf das Speicherverzeichnis zu vermeiden, aber ich habe keine Ahnung, wie das geht.

  1. Soll ich WCF als Selfhost in der MVC-App hosten?

  2. Soll ich den WCF-Dienst zu einer Anwendung oder einer Klassenbibliothek machen?

  3. Wie bindet man es mit der MVC App zusammen?

gisek 13.10.2013, 22:33
quelle

3 Antworten

13

Ich habe endlich herausgefunden, wie es funktioniert.

Fügen Sie in Ihrer MVC-App Web.config hinzu:

%Vor%

In Ihrer Routen-Konfiguration --- & gt; Global.asax oder App_Start / RoutesConfig (abhängig von der MVC-Version) add:

%Vor%

Und das ist es. Jetzt erscheint Ihr Dienst unter localhost / hallo oder wo auch immer Sie Ihre App bereitstellen.

Dies verwendet BasicHttpBinging standardmäßig. Wenn Sie andere benötigen, müssen Sie Ihre eigene ServiceHostFactory implementieren. Nach dem, was ich beobachtet habe, funktioniert diese Methode nur für HTTP-Bindungen. Als ich versuchte, ein NetTcpBinding hinzuzufügen, ist es fehlgeschlagen.

    
gisek 14.10.2013, 23:04
quelle
3

Wir machen das die ganze Zeit auf folgende Weise:

  1. Erstellen Sie eine WCF-Klassenbibliothek
  2. Verweisen Sie auf die WCF-Klassenbibliothek in Ihrer ASP.NET MVC 4-Webanwendung
  3. Erstellen Sie in Ihrer ASP.NET-Webanwendung eine SVC-Datei, die den WCF-Endpunkt als solchen verfügbar macht
  4. Vielleicht müssen Sie ein wenig mit den Einstellungen in der Datei web.config spielen, die jetzt neben den ASP.NET-Einstellungen WCF-Serviceendpunkteinstellungen enthält.
kroonwijk 13.10.2013 22:51
quelle
0

Da Sie bereits eine MVC4-Anwendung erstellen, sollten Sie auch die Verwendung der MVC4 + -Web-API in Erwägung ziehen, da diese ohne Probleme zusammenarbeitet (Web-API ist zuvor als WCF-REST bekannt).

Wenn Sie sich weiterhin für WCF entscheiden, würde ich es nicht im selben Projekt mit der MVC4-Anwendung mischen, sondern es als zusätzliche IIS-Anwendung neben MVC4 hosten.

    
Admir Tuzović 14.10.2013 21:16
quelle