C#・サービス/プロセス間通信

【WCF】【C#】WCF ~ WCF に Javaクライアントでアクセスする ~

■ はじめに WCF で作成したサービスに、 Javaクライアントとしてアクセスする必要がありそうなので、 Java => C#(WCF) のデータ送信方法を調べてみた。 ■ サンプル 前提条件 サービスの実装(C#) * 「System.ServiceModel」を参照追加しておくこと * サービ…

【WCF】【C#】WCF ~ あれこれ編 ~

■ 一方向通信を実装するには... WCFサービスで、Producer-Consumer パターン(生産者-消費者パターン ※) のようなことをやろうと調べていたら、意外と簡単にできそうなのでメモ ※ Producer-Consumer パターン については、以下の関連記事を参照のこと。 【…

【Windowsサービス】Windowsサービス ~ WCFでクライアント側と通信する ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37948659.html で、簡単なWindowsサービスを作成できたので、 今度は、プロセス間通信(IPC:Inter Process Communication)を実現できる WCF(Windows Communication Foundation)を使って、 以下の「構成」…

【Windowsサービス】Windowsサービス ~ Hello World編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/31706797.html の頃は、無料版 Visual Studioでは簡単には作れなかったが Visual Studio Community 2017 だと、簡単に作れそうなので、メモする。 ■ 環境 * Visual Studio Community 2017 (C#) * Windows 10 …

【Webサービス】【C#】Javaで作ったWebサービスに対して、C#のクライアントアプリを作成する

■ はじめに * Javaで作ったWebサービスを作成する予定だが、クライアントもJavaで作るより、 .NETで作った方が色々な面で楽なので、その方法を調べてみた。 => 思ったより簡単にできた。 使用するWebサービス https://blogs.yahoo.co.jp/dk521123/36139336.h…

【C#】.NET Remoting ~ プロセス間通信 ~

■ はじめに * Java の RMI (Remote Method Invocation) のようなことを C# で行う * .NET Framework 3.0から導入されたWCF(以下の関連記事を参照)でも同じことができるし、 そっちの方がいいと思うが、.NET Remoting というやり方を学ぶ WCF ~ 基礎知識編 …

【Webサービス】【WSDL】WSDLファイルからC#/VB etc のソースを抽出する

■ 手順 例 : 「C:\sample\sampleWsdlFile.wsdl」から CSファイル を抽出する Visual Studio C++ 2008 Express を使っている場合 [1] [スタート]-[すべてのプログラム]-[Microsoft Visual Studio C++ 2008 Express Edition] -[Visual Studio Tools]-[Visual S…

【WCF】【C#】WCF ~ App.configを付加 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/31872515.html に、App.configを使って、実装してみる。比較するといいかも。 ■ サンプル サービスの実装 https://d.hatena.ne.jp/tekk/20091101/1257050131 を参考にApp.configを修正する App.config <configuration> <system.serviceModel> <behaviors > <serviceBehaviors> </servicebehaviors></behaviors></system.servicemodel></configuration>

【WCF】【C#】WCF ~ Hello World編 ~

■ はじめに * 実際には使えないが、WCF(Windows Communication Foundation)の感じをつかむには、 以下の「構成」のようなシンプルなサンプルを作ってみるのは有意義であると思う 構成 サービス側 * Windows Form (SampleWcfService) + label x 1 + Formのイ…

【WCF】【C#】WCF ~ 例外編[2] : 例外をクライアントに伝播させる ~

■ 概要 WCF サービス内で発生した例外は、通常、セキュリティの観点から、クライアントに一切渡さず 代わりに FaultException がクライアントに返される。 ■ サンプル WCFサービス側 * サービスメソッドにFaultContractAttributeを追加 IWcfSampleService.cs…

【Windowsサービス】 ServiceControllerクラス ~サービスをコントロールする~

■ 使用目的 【1】 サービス情報の取得 サービスに関する以下の情報を取得することができる * サービス名前 * 表示名 * 種類 * ステータス(StartPending、Running、StopPending、Stopped、PausePending、Paused、ContinuePending) * サービスが依存してい…

【Windowsサービス】【C#】VS Express で Windowsサービス のテンプレート作成

■ 目的 http://blogs.yahoo.co.jp/dk521123/31702889.html で、触れたが、Windowsサービスを作成するには、 VS Professional以上でないと、テンプレートなどがないので、作成できない。 が、VS Expressでも以下のサイトなどを参考にすれば、できそうなのでや…

【Windowsサービス】Windowsサービス ~ 基礎知識編 ~

■ Windows サービス * バックグラウンドで実行されるプログラム * システム起動と同時に起動可能 身近な例 * インターネットサーバー(IIS) * データベースサーバー(SQL Server等) など ■ 注意 * WCFサービスとは異なる * Windows サービスの実装は、基本…

【C#】TCP 送受信

■ 受信側 デザイン * TextBox x 1 * Button x 2 * Timer x 1 サンプル using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Windows.Forms; namespace SampleListener { public partial class Form1 : Form { priva…

【C#】【WCF】WCF ~ タイムアウト / Timeout ~

■ Timeoutについて * クライアントのタイムアウトが app.configファイルのバインディングの 以下のパラメータで、設定することは可能。 ■ TBindingクラス OpenTimeoutプロパティ => サービスとの接続の確立を待機する時間間隔 http://msdn.microsoft.com/ja-…

【WCF】【C#】WCF ~ メッセージ転送モード ~

■ メッセージ転送モード 【1】バッファ ←デフォルト 【2】ストリーミング http://msdn.microsoft.com/ja-jp/library/system.servicemodel.transfermode(v=vs.80).aspx 【1】バッファ転送モード * 既定のバッファ転送モードでは、受信側がメッセージを読む…

【Windowsサービス】Windowsサービス ~ サービスのインストール etc ~

■ はじめに * 自分で登録したサービスを登録する場合、SCコマンドを使う ■ Windowsサービスのインストール 【1】scコマンドを利用する方法 【2】installutilコマンドを利用する方法 【1】scコマンドを利用する方法 構文 sc create 【サービス名】 binPath…

【WCF】【C#】WCF ~ インスタンス管理 ~

■ インスタンス管理 【1】InstanceContextMode (インスタンス化モード) 【2】ConcurrencyMode (同時実行モード) 【3】ReleaseInstanceMode (インスタンス破棄モード) 【1】InstanceContextMode (インスタンス化モード) * WCFでは、サービスのインスタン…

【WCF】【C#】WCF ~ 大規模データを扱うには ~

■ 概要 * 既存のシステムでは、classを返していたのだが、大量なデータをやり取りすると、 タイムアウトの例外が発生し(ここまでは、まだいい)、 Faulted の状態になってしまい、 以降復帰ができなくなった。 => Streamでやり取りすると良かった。(多分、以…

【WCF】【C#】WCF ~ 状態編 ~

■ はじめに * CommunicationObject.State プロパティで、状態を知ることが可能。 参考文献 http://msdn.microsoft.com/ja-jp/library/ms789041.aspx http://msdn.microsoft.com/ja-jp/library/system.servicemodel.communicationstate(v=vs.85).aspx ■ Fault…

【C#】【WCF】WCF ~ 例外編[1] ~

■ 予期しない例外/予期される例外 http://msdn.microsoft.com/ja-jp/library/aa354510.aspx より 【1】予期しない例外 * 致命的なエラー:OutOfMemoryException など * プログラミング エラー:ArgumentNullException、InvalidOperationException など クラ…

【C#】【WCF】WCF ~ 構築手順編 ~

■ サービス作成 * サービスを作成するには、 Windows Communication Foundation (WCF) コントラクトを実装するクラスを記述する 作成手順 サービス作成の準備 【1】クライアント-サーバ間のインタフェース(「コントラクト」と呼ぶ)の作成 [1-1] サービスコ…

【WCF】【C#】WCF ~ 基礎知識編 ~

■ WCFを学ぶ前に サービス / クライアントとは * 自身の機能を、別のプログラムへ提供するプログラムを「サービス(Service)」という * このサービスを利用するプログラムを「クライアント(Client)」という * イメージ的に、以下のように考えると、関係性が…