C# Cloud gehostetem Programm Daten senden

NSR

Mitglied
Hi Leute,

ich habe das Problem, dass ich einem gehosteten Programm in der Cloud daten (ints) schicken und am Ende auch wieder ints zurück bekommen muss. Ints können Theoretisch auch string sein, die ich dann im Programm (ASP.NET) in Ints Konvertieren muss.

Hintergrund ist der, dass ich einen speziellen Rechner (Taschenrechner) in die Cloud gestellt habe (mit Oberfläche). Nun soll es allerdings auch möglich sein aus z.B. Excel heraus auf die Formeln zuzugreifen, welche hinter dem Programm liegen. Was dann so aussieht:
jemand gibt 1-2 Daten ein und erhält 1-16 Werte zurück.

Hat jemand eine Idee, wie ich das machen kann? Jeder hinweis ist willkommen, da ich für die Aufgabe nicht mehr viel Zeit habe.

Grüße Nico.
 
Hi

Die Cloud-Anwendung muss einen entsprechende WebService (WCF, REST, ODATA, ... ) zur Verfügung stellen, um von außen angesprochen werden kann.
Für Excel empfielt sich dann wohl ein Plugin, welches den WS kennt
 
Danke für die Antwort und entschuldige, dass ich so lange nicht zurückgeschrieben habe. (Hatte Abschlussprüfung)!! :eek:

Hättest du mir ein paar Stichworte (Methoden, Namespaces, ...), nach denen ich suchen könnte (außer WCF, die die du oben aufgezählt hast), da ich noch nie was mit WebServices gemacht habe und auch nicht mehr wirklich die Zeit habe mich da einzuarbeiten.

Wäre ech toll von dir!!

Grüße Nico.
 
Also Leute jetzt mal meine Lösung:

Zu einem Cloud (Azure) Projekt eine WCF Service WebRole (WCF Service) hinzufügen. Dieser besitzt dann ein Interface (Standardnamen) IService1.cs. Dieses Interface sieht so aus (anstatt meiner drei Methoden sind da zwei dummi Methoden drin, die habe ich aber gelöscht):
Code:
[ServiceContract]
    public interface IBerechnungsmethoden
    {
        [OperationContract]
        string Berechne_Wasserdampf(double druck, double temperatur);
        [OperationContract]
        string Berechne_Sattdampf(double druckODERtemp, bool druck_true__temp_false);
        [OperationContract]
        string Berechne_Nassdampf(double druckODERtemp, bool druck_true__temp_false, double zahl2, int zahl2_ist);
    }

Über dieses [OperationContract] gebt ihr die Methoden im Web frei.

Als nächstes gibt es eine Service.svc.cs Datei. Diese erbt vom Interface (heißt es bei Interfacen auch erben ?) also müssen die Methoden aus dem Interface dort auftauchen. Bei mir sieht dass dan so aus:
Code:
public class Wasserdampf_Berechnung : IBerechnungsmethoden
    {
        Formeln formeln = new Formeln();

        public string Berechne_Wasserdampf(double druck, double temperatur)
        {
        }

        public string Berechne_Sattdampf(double druckODERtemp, bool druck_true__temp_false)
        {
        }

        public string Berechne_Nassdampf(double druckODERtemp, bool druck_true__temp_false, double zahl2, int zahl2_ist)
        {
        }
    }

Die Formeln Klasse oben im Code ist eine Klasse, die im hochzuladenen Projekt eingebunden wurde aber nach ausen nicht sichtbar ist.

Das wars eigentlich schon mit dem Projekt, welches ihr hochladen wollt.

Dort wo ihr die Methoden verwenden wollt, geht geht im Projektmappen explorer mit rechts auf Verweis und wählt Dienstverweis aus. Wählt dann im Adressfeld die Adresse, wo euer hochgeladenes zu finden ist mit dem Zusatz "/Service1.svc" (oder wie ihr halt die Datei im Projektmappen explorer genant habt) und klickt auf Gehe zu.
Fügt das angezeigen Ergebnis eurem Projekt hinzu und freut euch ;-).

Ich habe bei mir das Ergebnis Wasserdampf genannt, und deshalt sieht mein Zugriff auf die Klasse so aus:
Code:
Wasserdampf.BerechnungsmethodenClient client = new Wasserdampf.BerechnungsmethodenClient();

Ihr könnt danach auf die Methoden zugreifen, wie wenn sie normal im Projekt hinterlegt wären.
Code:
string werte = client.Berechne_Wasserdampf(45.11, 23.5);

Sollte beim Ausführen immer noch ein Fehler auftreten, fügt folgende Zeile irgendwo vor eurem Aufruf ein.
Code:
System.Net.ServicePointManager.Expect100Continue = false;

Ich habe keine Ahnung, für was das ist, aber damit sollte es dann funktionieren.

Hoffe ich habe alles verständlich ge- und beschrieben und kann einigen von euch damit helfen.

Grüße Nico.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück