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.
Soll ich WCF als Selfhost in der MVC-App hosten?
Soll ich den WCF-Dienst zu einer Anwendung oder einer Klassenbibliothek machen?
Wie bindet man es mit der MVC App zusammen?
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.
Wir machen das die ganze Zeit auf folgende Weise:
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.
Tags und Links asp.net-mvc wcf .net c# asp.net-mvc-4