Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
.Net Service von aussen benutzen
Gogeta
myCSharp.de - Member



Dabei seit:
Beiträge: 153
Herkunft: Izmir

Themenstarter:

.Net Service von aussen benutzen

beantworten | zitieren | melden

Hallo,
IDE: VS2010
Sprache: C#


ich bin auf der Suche nach einer Lösung die mich etwas beschäftigt. Ich möchte ein Service schreiben, diesen auf eine Maschine(die im selben Netzwerk ist) installieren wo sie nun arbeitet. Dieser Service soll Daten übermitteln, von einem Gerät -> über den Service -> in die Datenbank schreiben/lesen und in die andere Richtung.

Es wird also ein Service sein, welches Daten aus der Datenbank ausliest oder schreibt. Wie kann ich jetzt mit einem anderem Gerät, sei es Handy (App) oder Computer (Gui - Anwendung), auf diesen Service zugreifen ?

Gehen wir hier von einer Gui - Anwendung aus, die auf einem anderem Rechner (Computer) läuft. Wie kann ich auf die Funktionen (des Services) verwenden ? Die beiden Computer befinden sich im selben Netz.

Ist sowas überhaupt möglich ?

Ich freue mich über jegliche Hilfe.

Liebe Grüße

ps.: Diese Funktion soll später auf einer App(iOS) angepasst werden(das Handy wird dann über VPN mit dem Netzwerk verbunden sein).
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo Gogeta,

hört sich nach einer klassischen (Web)API an. Die implementierst du und kannst dann mit einem Client darauf zugreifen. Wenn dus richtig anstellst (Ionic/AngularJS für die Client-Programmierung) auch später mit einer iOS-App.

Gruss

Coffeebean
private Nachricht | Beiträge des Benutzers
Diräkt
myCSharp.de - Member



Dabei seit:
Beiträge: 622
Herkunft: Schweiz

beantworten | zitieren | melden

Hallo Gogeta

Das funktioniert problemlos.

Stichwörter:
=> Web API
=> WCF

Zitat
Wie kann ich auf die Funktionen (des Services) verwenden ?

Bei WebApi:
=> GET / POST / ... (HTTP VERBS)

Bei WCF:
=> GET / POST / ... (HTTP VERBS)
=> WSDL ( => für .Net Clients, fast als wäre es eine "normale" thirth party dll)

Ich würde Dir WebApi empfehlen zu verwenden.
Zitat
Diese Funktion soll später auf einer App(iOS) angepasst werden(das Handy wird dann über VPN mit dem Netzwerk verbunden sein).

Wo genau und wie es dann läuft ist eigentlich egal, alle Scenarien sind damit abdeckbar.

Beste Grüsse

Diräkt
private Nachricht | Beiträge des Benutzers
lechiffre
myCSharp.de - Member



Dabei seit:
Beiträge: 96
Herkunft: Hannover

beantworten | zitieren | melden

Es ist die Frage was du machen darfst kannst im Netzwerk.


Ich persönlich würde schön auf den HttpService setzen (WebApi) da bist du Plattform unabhängig(Handy,Tablet etc.)

Wenn es dir möglich ist. Ist in Moment auch State of the Art.


Es wird auch immer mehr auf die HttpServices gesetzt von Microsoft und weniger auf WCF , man kann gar nicht genau sagen was mit WCF passiert in Moment.


Schau dir im Internet paar Tut's an über Web Api und du wirst sehen ist kein hexenwerk.


Gruß
private Nachricht | Beiträge des Benutzers
Diräkt
myCSharp.de - Member



Dabei seit:
Beiträge: 622
Herkunft: Schweiz

beantworten | zitieren | melden

Die Antwort von lechiffre kann ich so nicht ganz stehen lassen:
Zitat
Es wird auch immer mehr auf die HttpServices gesetzt von Microsoft und weniger auf WCF , man kann gar nicht genau sagen was mit WCF passiert in Moment.

WCF setzt man ein wenn ein Service für mehr Protokolle als nur für HTTP zur Verfügung stehen soll. Du kannst mit WCF auch REST Services bauen, ist ggf. etwas mehr Overhead dabei (meistens absolut egal). WebAPI ist einfach viel näher am HTTP Protokoll (unterstützt ja auch sonst nix) :-)


Beste Grüsse

Diräkt
private Nachricht | Beiträge des Benutzers
Rioma
myCSharp.de - Member



Dabei seit:
Beiträge: 228

beantworten | zitieren | melden

RESTful APIs basieren meistens auf dem HTTP-Protkoll und können sehr gut mit der Web-API erstellt werden und nicht nur mit der WCF.

Der letzte Beitrag liest sich meiner Meinung nach so, als würde dies nur mit der Windows Client Foundation gehen.
private Nachricht | Beiträge des Benutzers
Gogeta
myCSharp.de - Member



Dabei seit:
Beiträge: 153
Herkunft: Izmir

Themenstarter:

beantworten | zitieren | melden

Hallo,

danke für die zahlreichen Antworten.

An euren Antworten kann ich merken, dass ich das am besten mittels ASP.NET (schon mal mit gearbeitet) oder WCF (noch nicht mit gearbeitet) machen sollte. Doch bei beiden Anwendungen müsste ich diese ins Netz stellen, dass möchte ich vermeiden!
Eine Web API habe ich schon mal mit ASP.NET erstellt :) doch ich dachte damit ich auf meine Methoden mit meiner GUI oder App zugreifen kann, müsste die WEB API im Netz verfügbar sein.

Oder meint Ihr: ich soll eine ASP.NET oder WCF erstellen und dann auf dem Lokalen rechner installieren und von dort ausführen. Dann wird ja ein localhost-Website erstellt mit einer Portnummer. Und dann über die GUI oder App zugreifen ???

Denn ich möchte SEHR ungern irgendwas ins Netz stellen, es sollte alles im selben Netzwerk geschehen.

Liebe Grüße
private Nachricht | Beiträge des Benutzers
Gogeta
myCSharp.de - Member



Dabei seit:
Beiträge: 153
Herkunft: Izmir

Themenstarter:

beantworten | zitieren | melden

Hallo,

ich habe nun weiter gesucht und habe diesen Thread gefunden: WebService läuft nur mit localhost nicht mit IP hier will der Thread erstelle genau sowas wie ich es will. Er möchte seine Web Api im eigenen Lan zur Verfügung stellen.

Jetzt meine Frage:
Wie kann ich mein WebService oder ASP.NET Anwendung per IIS auf mein local PC zum laufen bringen?

Sobald ich aus einer erstellten ASP.NET Anwendung die aspx Datei im IIS hinzufüge kommt dieser Fehler:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebApi.aspx.cs" Inherits="Webanwendung.WebApi" %>
Fehlermeldung:
Parserfehlermeldung: Der Typ "Webanwendung.WebApi" konnte nicht geladen werden.

Welche Dateien aus dem Projekt Ordner muss in den physischen pfad packen und im IIS hinzufügen, damit er die C# Dateien ordnungsgemäß ausliest und deren Funktion benutzbar werden?

LG
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2885
Herkunft: München

beantworten | zitieren | melden

Zitat
Er möchte seine Web Api im eigenen Lan zur Verfügung stellen
Das hat erstmal gar nichts mit der WebAPI zu tun sondern eher damit, wie das Netzwerk bzw. die Firewall(s) konfiguriert sind. Normalerweise ist das LAN grundsätzlich nicht von "außen" erreichbar. Alles andere wäre auch grob fahrlässig.
private Nachricht | Beiträge des Benutzers
Gogeta
myCSharp.de - Member



Dabei seit:
Beiträge: 153
Herkunft: Izmir

Themenstarter:

beantworten | zitieren | melden

Es soll auch ausschließlich um Lan verfügbar sein.
Am besten über die IP Adresse des PC und auf die Methoden zugreifen.

LG
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2885
Herkunft: München

beantworten | zitieren | melden

Zitat
Es soll auch ausschließlich um Lan verfügbar sein.
Das ist eben Aspekt den Du mit dem Programm nicht beinflussen kannst und um den sich der Netzwerkadministrator kümmern muss. WebApi-Projekte heißen nur so, weil sie vornehmlich im Web-Umfeld verwendet werden und weil sie Web-Technologien verwenden.

Wie wäre es, wenn Du einfach aus dem Visual Studio WebApi-Template ein neues Testprojekt anlegst und erstmal mit einer Hallo-Welt-Methode experimentierst?! Ich bin mir sicher dass Du mit dem Testprojekt und einem Browser schnell rausfinden wirst ob das für Deine Anforderungen passt.
private Nachricht | Beiträge des Benutzers
Gogeta
myCSharp.de - Member



Dabei seit:
Beiträge: 153
Herkunft: Izmir

Themenstarter:

beantworten | zitieren | melden

Ich habe hier zwei Projekte, dass eine ist ein ASP.NET Webanwendung und das andere ist ASP.NET Dienstanwendung (eigentlich wollte ich hier eine Win-Dienstanwendung machen, doch dann bekomme ich die Daten von der Dienstanwendung nicht).

Meine frage ist hier, ich will von einem anderen PC diese "Web"-Projekte ansteuern. Wenn ich diese Projkte laufen lasse, laufen die auf Localhost:Port, doch wie kann ich es machen über IIS das statt Localhost die IP-Adresse von dem Computer verwendet werden kann? Somit könnte ich von einem anderem Computer auf diese WebAnwednung zugreifen.
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2885
Herkunft: München

beantworten | zitieren | melden

Wenn Du den IIS auf Deinem Rechner installiert hast, dann kannst Du aus dem VS heraus mit Hilfe des Punktes "Veröffentlichen" oder "Deploy" die Anwendung einfach in eine IIS-Site ausrollen. Wenn Du dann von lokal darauf zugreifen kannst, dann musst Du dich halt noch um die richtigen Firewall-Einstellungen kümmern.

Anleitungen, wie man den Zugriff auf den IISExpress (mit dem in aktuellen VS standardmäßig die Webanwednungen zum debugging gestartet werden) von "außen" zulässt gibt es im Internet auch genügend.

Das sollte aber auch alles mit Hilfe einer Suchmaschine lösbar sein. Der von Dir verlinkte Beitrag WebService läuft nur mit localhost nicht mit IP ist übrigens fast sechs Jahre alt... Eine lange Zeit in der Software-Welt.
private Nachricht | Beiträge des Benutzers
Gogeta
myCSharp.de - Member



Dabei seit:
Beiträge: 153
Herkunft: Izmir

Themenstarter:

beantworten | zitieren | melden

Danke an alle Antworten,

ich habe es nun endlich geschafft.

LG
private Nachricht | Beiträge des Benutzers