2017-10-18 65 views
0

要するに、.Net Frameworkアプリケーション(Windowsフォームなど)でRESTまたはSOAP APIサーバーを提供するための最良のmehodを探しています - 場合によっては管理者権限なしC#のHttpListenerとGriffin.WebServerの代わりに

可能なポータブルcsharpアプリケーションでWebベースのRESTまたはSOAP APIを提供する最も良い方法は現在ですか? 基本的に私は基本的なhttp標準をサポートしている(例えばExpect:100-continueなど)、同時に私のcsharpプログラムのクラスをインスタンス化できるものが必要です(perfomranceと使いやすさの理由)。

マイクロソフトの方法では、IISとおそらくASPを使用するか、httplistenerを使用します。 IISはポータブルな方法で実行することはできず、多くのインストール手順/システム管理ベースの作業が必要です。一方、httlistenerはWebサーバーに近いものではないので、私は自分自身ですべての標準Webサーバーコマンドを実装する必要があります。私はここ数年以来、このトピックの周りを探しています

、一つの例では、[古い質問] Alternative to HttpListener?

残念ながら、この1つは中止のプロジェクトにリンクし、この質問です。

アイデア?

[編集]この質問は、C#だけでなく.NET Framework 2-4.5も対象としています。その結果は、例えば、 Windowsフォーム、Windowsサービス、およびコマンドラインアプリケーション。

現在、私はHTTPListenerに基づいたスケルトンWebサーバーを使用しているため、リクエストの解析、回答の書式設定、および特別なhttpコマンドへの反応(私は決して終わりのない仕事のようです)を実装する必要があります。 https://www.codeproject.com/Articles/17071/Sample-HTTP-Server-Skeleton-in-C

+1

ヒットを見つけるにはgoogleを使用してください。 ".net embeddable web server"はNancy、NHttp、Kayak、EmbedIOを示しています。 Node.jsは大きな犬なので、Googleの "node.js .net integration"もしたいです。 Out pops edge.js –

+0

賞金が終わる前に答えを書くようにしてください; – Harry

+1

RESTとSOAPはまったく違った獣です。 RESTは...ほとんど何もないのでHttpListenerで十分です。完全な吹き飛ばされたSOAP(およびWSDL)は複雑で、ちょっと古いものです。したがって、2つの要件は何らかの形で矛盾しています。 HttpListenerは管理者権限を必要としません。たとえば、サーバーを外部に開くか、ローカルホスト用であるか(https://stackoverflow.com/questions/223063/how-can-i-create-an-httplistener-class-on-a) -random-port-in-c /)? localhost以上のものが必要な場合は、とにかくファイアウォールを開く必要があります。 –

答えて

1

あなたは.NET Coreを使用して何をすることができるはずです。 IISとは独立したAPIを使用して、自己ホスト型APIを簡単に構築できます。チュートリアルは簡単に見つけられるはずです。hereはMicrosoftの例です。

+0

ありがとう!私は.NET Coreを見上げましたが、.NET Frameworkと組み合わせることはできません。私は良い古い.netフレームワークのための解決策が必要です。 – Harry

1

ilikesleeping としては、あなたのでし使用DOTNETコアを示唆したが、それはサービスとして動作することで合併症があります。

Microsoft OWINフレームワークを使用することをお勧めします。これは、安らかなアプリケーションを構築するための本当にシンプルで簡単な方法です。それは、コンソールまたはサービスとしてうまく動作することができます。コンソールmkodeでは、必要に応じてフォームを表示できます。

キックスタートを得るためのリンクは次のとおりです。 https://docs.microsoft.com/en-us/aspnet/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api | https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/getting-started-with-owin-and-katana | https://blog.decayingcode.com/post/Creating-a-Self-Hosted-OWIN-Application/ | https://weblogs.asp.net/fredriknormen/creating-a-simple-rest-like-service-with-owin-open-web-server-interface

EDIT: ...と、ここでOWIN上のSOAPエンドポイントをホストするミドルウェアを持ってする方法についてのトピックがあります:Any way to get OWIN to host a SOAP service?

0

私はこの質問の著者です。私がここで学んだことを将来の読者に明示したかっただけです。

この質問について最も興味深いのは、「ショッピング」の質問です。受け入れられた答えは、事実に基づいているのではなく、主観的な感情だけに基づいています。提案された方法のほとんどは、記述されたユースケースに当たった。

これは、一部のユーザーが回答を書きたくない代わりに、代わりにその候補をコメントに入れた理由です。奇妙ですが、これはSOの仕組みです。私たちは科学的に正解を好むだけです!

これまでのところ、これは私の最初の「恩恵」問題でした。私は約3週間からSOのユーザーをアクティブにしています。 (何年も受動態、ほとんどの人のように)

関連する問題