WebServiceHost クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Windows Communication Foundation (WCF) REST プログラミング モデルを補完する ServiceHost 派生クラス。
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 クラスは、その動作がまだ含まれていない、WebHttpBehavior を含むすべてのエンドポイントに WebMessageEncodingElement を追加します。 サービス上のすべての操作が空の 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() |
通信オブジェクトを、直ちに現在の状態から Closing 状態に遷移させます。 (継承元 CommunicationObject) |
AddBaseAddress(Uri) |
サービス ホストにベース アドレスを追加します。 (継承元 ServiceHostBase) |
AddDefaultEndpoints() |
既定のバインドを使用して、サービス ホストで検出された各コントラクト内のすべてのベース アドレスのサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
AddServiceEndpoint(ServiceEndpoint) |
ホストされるサービスに指定されたサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
AddServiceEndpoint(String, Binding, String) |
指定されたコントラクト、バインディング、およびエンドポイント アドレスを持つホストされるサービスに、サービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
AddServiceEndpoint(String, Binding, String, Uri) |
コントラクト、バインド、エンドポイント アドレス、およびサービスがリッスンするアドレスを表す URI を指定して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri) |
指定したコントラクト、バインド、およびエンドポイント アドレスを含む URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri, Uri) |
コントラクト、バインド、およびエンドポイント アドレスとリッスン アドレスを含む URI を指定して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHostBase) |
AddServiceEndpoint(Type, Binding, String) |
指定されたコントラクト、バインディング、およびエンドポイント アドレスを持つホストされるサービスに、サービス エンドポイントを追加します。 (継承元 ServiceHost) |
AddServiceEndpoint(Type, Binding, String, Uri) |
指定したコントラクト、バインド、エンドポイント アドレス、およびサービスがリッスンする URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHost) |
AddServiceEndpoint(Type, Binding, Uri) |
指定したコントラクト、バインド、およびエンドポイント アドレスを含む URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHost) |
AddServiceEndpoint(Type, Binding, Uri, Uri) |
指定したコントラクト、バインド、エンドポイント アドレスを含む URI、およびサービスがリッスンする URI を使用して、ホストされるサービスにサービス エンドポイントを追加します。 (継承元 ServiceHost) |
ApplyConfiguration() |
サービス記述を構成ファイルから読み込み、構築中のランタイムにそれを適用します。 (継承元 ServiceHost) |
BeginClose(AsyncCallback, Object) |
通信オブジェクトをクローズするための非同期操作を開始します。 (継承元 CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
タイムアウトを指定して、通信オブジェクトをクローズするための非同期操作を開始します。 (継承元 CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
通信オブジェクトを開くための非同期操作を開始します。 (継承元 CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
指定した時間内で通信オブジェクトを開くための非同期操作を開始します。 (継承元 CommunicationObject) |
Close() |
通信オブジェクトを、現在の状態から Closed 状態に遷移させます。 (継承元 CommunicationObject) |
Close(TimeSpan) |
指定した時間内で、通信オブジェクトを現在の状態から Closed 状態に遷移させます。 (継承元 CommunicationObject) |
CreateDescription(IDictionary<String,ContractDescription>) |
ホストされるサービスの説明を作成します。 (継承元 ServiceHost) |
EndClose(IAsyncResult) |
通信オブジェクトをクローズするための非同期操作を完了します。 (継承元 CommunicationObject) |
EndOpen(IAsyncResult) |
通信オブジェクトを開くための非同期操作を完了します。 (継承元 CommunicationObject) |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
Fault() |
通信オブジェクトを、現在の状態から Faulted 状態に遷移させます。 (継承元 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() |
通信オブジェクトが Closing 状態に遷移しているときに呼び出されます。 (継承元 CommunicationObject) |
OnEndClose(IAsyncResult) |
サービス ホストの終了時に呼び出された非同期操作を完了します。 (継承元 ServiceHostBase) |
OnEndOpen(IAsyncResult) |
サービス ホストの開始時に呼び出された非同期操作を完了します。 (継承元 ServiceHostBase) |
OnFaulted() |
同期フォールト操作の呼び出しにより通信オブジェクトが Faulted 状態に遷移した後で、通信オブジェクトに処理を挿入します。 (継承元 CommunicationObject) |
OnOpen(TimeSpan) |
チャネル ディスパッチャーを開きます。 (継承元 ServiceHostBase) |
OnOpened() |
ホストされるサービスのサービス資格情報、サービス認証およびサービス承認動作を取得します。 (継承元 ServiceHostBase) |
OnOpening() |
WebServiceHost インスタンスが開かれるときに呼び出されます。 |
Open() |
通信オブジェクトを、Created 状態から Opened 状態に遷移させます。 (継承元 CommunicationObject) |
Open(TimeSpan) |
指定した時間内で、通信オブジェクトを Created 状態から Opened 状態に遷移させます。 (継承元 CommunicationObject) |
ReleasePerformanceCounters() |
ホストされるサービスの、サービスとチャネル ディスパッチャーのパフォーマンス カウンターを解放します。 (継承元 ServiceHostBase) |
SetEndpointAddress(ServiceEndpoint, String) |
指定されたエンドポイントのエンドポイント アドレスを指定されたアドレスに設定します。 (継承元 ServiceHostBase) |
ThrowIfDisposed() |
通信オブジェクトが破棄された場合に、例外をスローします。 (継承元 CommunicationObject) |
ThrowIfDisposedOrImmutable() |
通信オブジェクトの State プロパティが Created 状態に設定されていない場合、例外をスローします。 (継承元 CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
通信オブジェクトが Opened 状態ではない場合に、例外をスローします。 (継承元 CommunicationObject) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
events
Closed |
通信オブジェクトが Closed 状態に遷移すると発生します。 (継承元 CommunicationObject) |
Closing |
通信オブジェクトが Closing 状態に遷移すると発生します。 (継承元 CommunicationObject) |
Faulted |
通信オブジェクトが Faulted 状態に遷移すると発生します。 (継承元 CommunicationObject) |
Opened |
通信オブジェクトが Opened 状態に遷移すると発生します。 (継承元 CommunicationObject) |
Opening |
通信オブジェクトが Opening 状態に遷移すると発生します。 (継承元 CommunicationObject) |
UnknownMessageReceived |
不明のメッセージが受信されたときに発生します。 (継承元 ServiceHostBase) |
明示的なインターフェイスの実装
IDisposable.Dispose() |
サービス ホストを閉じます。 (継承元 ServiceHostBase) |