WebServiceHost クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ServiceHost Windows Communication Foundation (WCF) REST プログラミング モデルを補完する派生クラス。
public ref class WebServiceHost : System::ServiceModel::ServiceHost
public class WebServiceHost : System.ServiceModel.ServiceHost
type WebServiceHost = class
inherit ServiceHost
Public Class WebServiceHost
Inherits ServiceHost
- 継承
- 派生
例
次の例では、 WebServiceHost クラスを使用して、WCF REST プログラミング モデルを使用するサービスをホストする方法を示します。
[ServiceContract]
public interface ICalculator
{
[OperationContract]
[WebInvoke(UriTemplate = "add?x={x}&y={y}")]
long Add(long x, long y);
[OperationContract]
[WebInvoke(UriTemplate = "sub?x={x}&y={y}")]
long Subtract(long x, long y);
[OperationContract]
[WebInvoke(UriTemplate = "mult?x={x}&y={y}")]
long Multiply(long x, long y);
[OperationContract]
[WebInvoke(UriTemplate = "div?x={x}&y={y}")]
long Divide(long x, long y);
[OperationContract]
[WebGet(UriTemplate = "hello?name={name}")]
string SayHello(string name);
}
public class CalcService : ICalculator
{
public long Add(long x, long y)
{
return x + y;
}
public long Subtract(long x, long y)
{
return x - y;
}
public long Multiply(long x, long y)
{
return x * y;
}
public long Divide(long x, long y)
{
return x / y;
}
public string SayHello(string name)
{
return "Hello " + name;
}
}
class Program
{
static void Main(string[] args)
{
Uri baseAddress = new Uri("http://localhost:8000/");
WebServiceHost svcHost = new WebServiceHost(typeof(CalcService), baseAddress);
try
{
svcHost.Open();
Console.WriteLine("Service is running");
Console.WriteLine("Press enter to quit...");
Console.ReadLine();
svcHost.Close();
}
catch (CommunicationException cex)
{
Console.WriteLine("An exception occurred: {0}", cex.Message);
svcHost.Abort();
}
}
}
<ServiceContract()> _
Public Interface ICalculator
<OperationContract()> _
<WebInvoke(UriTemplate:="add?x={x}&y={y}")> _
Function Add(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(UriTemplate:="sub?x={x}&y={y}")> _
Function Subtract(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(UriTemplate:="mult?x={x}&y={y}")> _
Function Multiply(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(UriTemplate:="div?x={x}&y={y}")> _
Function Divide(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebGet(UriTemplate:="hello?name={name}")> _
Function SayHello(ByVal name As String) As String
End Interface
Public Class CalcService
Implements ICalculator
Public Function Add(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Add
Return x + y
End Function
Public Function Subtract(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Subtract
Return x - y
End Function
Public Function Multiply(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Multiply
Return x * y
End Function
Public Function Divide(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Divide
Return x / y
End Function
Public Function SayHello(ByVal name As String) As String Implements ICalculator.SayHello
Return "Hello " + name
End Function
End Class
注釈
WebServiceHostサービスの説明でエンドポイントが見つからない場合は、HTTP および HTTPS ベース アドレスのサービスのベース アドレスに既定のエンドポイントが自動的に作成されます。 ユーザーがベース アドレスでエンドポイントを明示的に構成している場合、エンドポイントは自動的に作成されません。 WebServiceHost は、セキュリティで保護された仮想ディレクトリで使用する場合、関連付けられているインターネット インフォメーション サービス (IIS) のセキュリティ設定を操作するようにエンドポイントのバインドを自動的に構成します。
既定の HTTP エンドポイントを作成すると、 WebServiceHost は HTTP ヘルプ ページと Web サービス記述言語 (WSDL) GET 機能も無効にして、メタデータ エンドポイントが既定の HTTP エンドポイントに干渉しないようにします。
さらに、WebServiceHost クラスは、動作がまだなく、WebMessageEncodingElementを持つすべてのエンドポイントにWebHttpBehaviorを追加します。 サービスのすべての操作に空の HTTP 要求本文がある場合、または HTTP 要求本文をストリームとして処理する場合、 WebServiceHost はバインディングに適したコンテンツ タイプ マッパーを自動的に構成します。
コンストラクター
| 名前 | 説明 |
|---|---|
| WebServiceHost() |
WebServiceHost クラスの新しいインスタンスを初期化します。 |
| WebServiceHost(Object, Uri[]) |
指定したシングルトン サーバー インスタンスとベース アドレスを使用して、 WebServiceHost クラスの新しいインスタンスを初期化します。 |
| WebServiceHost(Type, Uri[]) |
指定したサービスの種類とベース アドレスを使用して、 WebServiceHost クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Authentication |
サービス認証の動作を取得します。 (継承元 ServiceHostBase) |
| Authorization |
ホストされているサービスの承認動作を取得します。 (継承元 ServiceHostBase) |
| BaseAddresses |
ホストされているサービスによって使用されるベース アドレスを取得します。 (継承元 ServiceHostBase) |
| ChannelDispatchers |
サービス ホストによって使用されるチャネル ディスパッチャーのコレクションを取得します。 (継承元 ServiceHostBase) |
| CloseTimeout |
サービス ホストが閉じるのに許可される時間の間隔を取得または設定します。 (継承元 ServiceHostBase) |
| Credentials |
ホストされているサービスの資格情報を取得します。 (継承元 ServiceHostBase) |
| DefaultCloseTimeout |
サービス ホストが閉じるのに許可される既定の時間間隔を取得します。 (継承元 ServiceHostBase) |
| DefaultOpenTimeout |
サービス ホストを開くために許可される既定の時間間隔を取得します。 (継承元 ServiceHostBase) |
| Description |
ホストされているサービスの説明を取得します。 (継承元 ServiceHostBase) |
| Extensions |
現在指定されているサービス ホストの拡張機能を取得します。 (継承元 ServiceHostBase) |
| ImplementedContracts |
ホストされているサービスによって実装されたコントラクトを取得します。 (継承元 ServiceHostBase) |
| IsDisposed |
通信オブジェクトが破棄されたかどうかを示す値を取得します。 (継承元 CommunicationObject) |
| ManualFlowControlLimit |
ホストされるサービスによって受信されるメッセージのフロー制御制限を取得または設定します。 (継承元 ServiceHostBase) |
| OpenTimeout |
サービス ホストが開くことを許可する時間間隔を取得または設定します。 (継承元 ServiceHostBase) |
| SingletonInstance |
ホストされているサービスのシングルトン インスタンスを取得します。 (継承元 ServiceHost) |
| State |
通信オブジェクトの現在の状態を示す値を取得します。 (継承元 CommunicationObject) |
| ThisLock |
状態遷移中にクラス インスタンスを保護する相互排他的ロックを取得します。 (継承元 CommunicationObject) |
メソッド
| 名前 | 説明 |
|---|---|
| Abort() |
通信オブジェクトを現在の状態から終了状態に直ちに遷移させます。 (継承元 CommunicationObject) |
| AddBaseAddress(Uri) |
サービス ホストにベース アドレスを追加します。 (継承元 ServiceHostBase) |
| AddDefaultEndpoints() |
既定のバインディングを使用して、サービス ホストで見つかった各コントラクト内のすべてのベース アドレスのサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
| AddServiceEndpoint(ServiceEndpoint) |
指定したサービス エンドポイントをホステッド サービスに追加します。 (継承元 ServiceHostBase) |
| AddServiceEndpoint(String, Binding, String, Uri) |
リッスンするアドレスを含むコントラクト、バインディング、エンドポイント アドレス、URI を指定して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
| AddServiceEndpoint(String, Binding, String) |
指定したコントラクト、バインディング、およびエンドポイント アドレスを使用して、ホストされているサービスにサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
| AddServiceEndpoint(String, Binding, Uri, Uri) |
エンドポイントとリッスン アドレスを含む、指定されたコントラクト、バインディング、URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
| AddServiceEndpoint(String, Binding, Uri) |
指定したコントラクト、バインディング、およびエンドポイント アドレスを含む URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
| AddServiceEndpoint(Type, Binding, String, Uri) |
指定したコントラクト、バインディング、エンドポイント アドレス、サービスがリッスンする URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHost) |
| AddServiceEndpoint(Type, Binding, String) |
指定したコントラクト、バインディング、およびエンドポイント アドレスを使用して、ホストされているサービスにサービス エンドポイントを追加します。 (継承元 ServiceHost) |
| AddServiceEndpoint(Type, Binding, Uri, Uri) |
指定したコントラクト、バインディング、エンドポイント アドレスを含む URI、サービスがリッスンする URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHost) |
| AddServiceEndpoint(Type, Binding, Uri) |
指定したコントラクト、バインディング、およびエンドポイント アドレスを含む URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHost) |
| ApplyConfiguration() |
構成ファイルからサービスの説明を読み込み、構築中のランタイムに適用します。 (継承元 ServiceHost) |
| BeginClose(AsyncCallback, Object) |
通信オブジェクトを閉じる非同期操作を開始します。 (継承元 CommunicationObject) |
| BeginClose(TimeSpan, AsyncCallback, Object) |
指定したタイムアウトで通信オブジェクトを閉じる非同期操作を開始します。 (継承元 CommunicationObject) |
| BeginOpen(AsyncCallback, Object) |
通信オブジェクトを開く非同期操作を開始します。 (継承元 CommunicationObject) |
| BeginOpen(TimeSpan, AsyncCallback, Object) |
指定した時間内に通信オブジェクトを開く非同期操作を開始します。 (継承元 CommunicationObject) |
| Close() |
通信オブジェクトを現在の状態から閉じた状態に遷移させます。 (継承元 CommunicationObject) |
| Close(TimeSpan) |
指定した時間内に、通信オブジェクトを現在の状態から閉じた状態に遷移させます。 (継承元 CommunicationObject) |
| CreateDescription(IDictionary<String,ContractDescription>) |
ホストされているサービスの説明を作成します。 (継承元 ServiceHost) |
| EndClose(IAsyncResult) |
通信オブジェクトを閉じる非同期操作を完了します。 (継承元 CommunicationObject) |
| EndOpen(IAsyncResult) |
通信オブジェクトを開く非同期操作を完了します。 (継承元 CommunicationObject) |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| Fault() |
通信オブジェクトを現在の状態から障害状態に遷移させます。 (継承元 CommunicationObject) |
| GetCommunicationObjectType() |
通信オブジェクトの種類を取得します。 (継承元 CommunicationObject) |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| IncrementManualFlowControlLimit(Int32) |
ホストされるサービスに対するメッセージのフロー レートの制限を、指定した増分で増やします。 (継承元 ServiceHostBase) |
| InitializeDescription(Object, UriSchemeKeyedCollection) |
インスタンスと指定したベース アドレスに基づいてホストされるサービスの説明を初期化します。 (継承元 ServiceHost) |
| InitializeDescription(Type, UriSchemeKeyedCollection) |
型と指定したベース アドレスに基づいて、ホストされるサービスの説明を初期化します。 (継承元 ServiceHost) |
| InitializeDescription(UriSchemeKeyedCollection) |
コントラクトとサービスの説明を使用して、サービス ホストを作成して初期化します。 (継承元 ServiceHostBase) |
| InitializeRuntime() |
サービス ホストのランタイムを初期化します。 (継承元 ServiceHostBase) |
| LoadConfigurationSection(ServiceElement) |
ホストされるサービスの構成ファイルからサービス要素を読み込みます。 (継承元 ServiceHostBase) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| OnAbort() |
サービスを中止します。 (継承元 ServiceHostBase) |
| OnBeginClose(TimeSpan, AsyncCallback, Object) |
サービス ホストの終了時に呼び出された非同期操作を開始します。 (継承元 ServiceHostBase) |
| OnBeginOpen(TimeSpan, AsyncCallback, Object) |
サービス ホストを開くときに呼び出される非同期操作を開始します。 (継承元 ServiceHostBase) |
| OnClose(TimeSpan) |
チャネル ディスパッチャー、関連するインスタンス コンテキスト、リスナーなど、ホストされているサービスを閉じます。 (継承元 ServiceHostBase) |
| OnClosed() |
サービス ホストが閉じられたときにホストされている破棄可能なサービスを破棄します。 (継承元 ServiceHost) |
| OnClosing() |
通信オブジェクトの終了状態への遷移中に呼び出されます。 (継承元 CommunicationObject) |
| OnEndClose(IAsyncResult) |
サービス ホストの終了時に呼び出された非同期操作を完了します。 (継承元 ServiceHostBase) |
| OnEndOpen(IAsyncResult) |
サービス ホストを開くときに呼び出された非同期操作を完了します。 (継承元 ServiceHostBase) |
| OnFaulted() |
同期障害操作の呼び出しにより、通信オブジェクトが障害状態に遷移した後に、処理を挿入します。 (継承元 CommunicationObject) |
| OnOpen(TimeSpan) |
チャネル ディスパッチャーを開きます。 (継承元 ServiceHostBase) |
| OnOpened() |
ホステッド サービスのサービス資格情報、サービス認証、および承認動作を取得します。 (継承元 ServiceHostBase) |
| OnOpening() |
WebServiceHost インスタンスが開いたときに呼び出されます。 |
| Open() |
通信オブジェクトが作成された状態から開かれた状態に遷移します。 (継承元 CommunicationObject) |
| Open(TimeSpan) |
指定した時間内に、通信オブジェクトが作成された状態から開かれた状態に遷移します。 (継承元 CommunicationObject) |
| ReleasePerformanceCounters() |
ホストされるサービスのサービス およびチャネル ディスパッチャーのパフォーマンス カウンターを解放します。 (継承元 ServiceHostBase) |
| SetEndpointAddress(ServiceEndpoint, String) |
指定したエンドポイントのエンドポイント アドレスを、指定したアドレスに設定します。 (継承元 ServiceHostBase) |
| ThrowIfDisposed() |
通信オブジェクトが破棄された場合に例外をスローします。 (継承元 CommunicationObject) |
| ThrowIfDisposedOrImmutable() |
State プロパティがCreated状態に設定されていない通信オブジェクトの場合は、例外をスローします。 (継承元 CommunicationObject) |
| ThrowIfDisposedOrNotOpen() |
通信オブジェクトが Opened 状態でない場合は、例外をスローします。 (継承元 CommunicationObject) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
イベント
| 名前 | 説明 |
|---|---|
| Closed |
通信オブジェクトが閉じた状態に遷移したときに発生します。 (継承元 CommunicationObject) |
| Closing |
通信オブジェクトが終了状態に遷移したときに発生します。 (継承元 CommunicationObject) |
| Faulted |
通信オブジェクトが障害状態に遷移したときに発生します。 (継承元 CommunicationObject) |
| Opened |
通信オブジェクトが開かれた状態に遷移したときに発生します。 (継承元 CommunicationObject) |
| Opening |
通信オブジェクトが開始状態に遷移したときに発生します。 (継承元 CommunicationObject) |
| UnknownMessageReceived |
不明なメッセージを受信したときに発生します。 (継承元 ServiceHostBase) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IDisposable.Dispose() |
サービス ホストを閉じます。 (継承元 ServiceHostBase) |