2017-12-15 47 views
0

Ich habe folgendes Szenario:Asp.Net WebAPI Write-Stream-

ich machen möchte, in Asp.Net WebApi, ein Endpunkt, der als "Strom" wirkt. Der Endpunkt empfängt Text und hängt ihn an eine Datei auf dem Datenträger an.

Der Client kann eine Verbindung zu diesem Endpunkt herstellen und benutzerdefinierten Text in den Stream "hochladen".

Grundsätzlich auf dem Client, ich möchte ein HttpModule erstellen, die Verbindung zum Endpunkt auf BeginRequest Ereignis wird, und die Verbindung auf EndRequest Ereignis schließen.

Ist dies mit Asp.Net WebApi möglich?

+0

Es ist nicht klar, was du meinst? Sagen Sie, dass der Client eine Anfrage an diesen Endpunkt sendet und Text hochlädt? Es wird an die Datei angehängt ... wenn Sie das nächste Mal eine Anfrage machen, fügen Sie diesen Text ebenfalls an die Datei an. Das scheint ziemlich einfach zu sein, nicht sicher, wo HTTPModule und BeginRequest dazu kommen. Oder versuchen Sie über eine ständige offene Verbindung zu sprechen, bei der im Laufe der Zeit ein Datenstrom ankommt? Für solche Dinge benötigen Sie wahrscheinlich eine WebSockets/SignalR-Implementierung. – ADyson

+0

Warum sollte der Client nicht die gesamte Datei mit einem 'HttpClient' mit' PostStreamAsync' hochladen oder eine Controller-Methode erstellen, die der Client mehrere Male aufruft, um einen String-Parameter an die Datei anzuhängen. Nicht sicher oder es ist möglich, eine Anfrage so zu führen. Eine andere Möglichkeit wäre vielleicht, eine Websocket zu benutzen und damit eine Verbindung herzustellen. – Dragonvil

+0

Ja, ich spreche "über eine ständige offene Verbindung, wo ein Datenstrom im Laufe der Zeit ankommt". Ich möchte vermeiden, eine Verbindung für jeden Textabschnitt, den ich senden möchte, zu öffnen und zu schließen. – Catalin

Antwort

0

Wenn Sie versuchen, eine ständige offene Verbindung zuzulassen, bei der ein Datenstrom über einen bestimmten Zeitraum in getrennten Blöcken ankommt, würde ich vorschlagen, dass Sie WebSockets/SignalR recherchieren, die diese Funktionalität über die Netz.

Es ist nicht wirklich möglich, das zu tun, was Sie vorschlagen, indem Sie herkömmliches HTTP verwenden.