ServiceMetadataBehavior.HttpGetEnabled プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
HTTP/GET 要求を使用した取得用にサービス メタデータを公開するかどうかを示す値を取得または設定します。
public:
property bool HttpGetEnabled { bool get(); void set(bool value); };
public bool HttpGetEnabled { get; set; }
member this.HttpGetEnabled : bool with get, set
Public Property HttpGetEnabled As Boolean
プロパティ値
WSDL を公開する場合は true
。それ以外の場合は false
。 既定値は、false
です。
例
構成ファイルで ServiceMetadataBehavior を使用して HTTP/GET および WS-Transfer/GET 要求のメタデータ サポートを有効にする方法を次のコード例に示します。
// Create a new metadata behavior object and set its properties to
// create a secure endpoint.
ServiceMetadataBehavior sb = new ServiceMetadataBehavior();
//sb.EnableHelpPage= true;
//sb.HttpsGetUrl = new Uri("https://myMachineName:8036/myEndpoint");
//myServiceHost.Description.Behaviors.Add(sb);
}
private void SnippetServiceMetadataBehavior()
{
// service for which <<indigo2>> automatically adds a
// ServiceMetadataBehavior to publish metadata as well as
// an HTML service help page
// from C_HowToSecureEndpoint\cs
// Create a new metadata behavior object and set its properties to
// create a secure endpoint.
ServiceMetadataBehavior sb = new ServiceMetadataBehavior();
/* sb.EnableHelpPage = true;
sb.enableMetadataExchange = true;
sb.HttpsGetUrl = new Uri("https://myMachineName:8036/myEndpoint");
myServiceHost.Description.Behaviors.Add(sb);
*/
}
private void Run()
{
// T:System.ServiceModel.ServiceMetadataBehavior
// <Snippet#0>
// Create a ServiceHost for the service type and use the base address from configuration.
ServiceHost host = new ServiceHost(typeof(SampleService));
try
{
ServiceMetadataBehavior metad
= host.Description.Behaviors.Find<ServiceMetadataBehavior>();
if (metad == null)
metad = new ServiceMetadataBehavior();
metad.HttpGetEnabled = true;
host.Description.Behaviors.Add(metad);
host.AddServiceEndpoint(
ServiceMetadataBehavior.MexContractName,
MetadataExchangeBindings.CreateMexHttpBinding(),
"mex"
);
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
host.Close();
// </Snippet#0>
注釈
HttpGetUrl の値が相対値の場合、メタデータが公開されるアドレスは、ベース アドレスとサービス アドレスに ?wsdl
クエリ文字列を加えたものになります。
HttpGetUrl の値が絶対値の場合、メタデータが公開されるアドレスは、HttpGetUrl 値に ?wsdl
クエリ文字列を加えたものになります。
たとえば、サービス アドレスが http://localhost:8080/CalculatorService
で、HttpGetUrl が空の文字列の場合、HTTP/GET メタデータ アドレスは http://localhost:8080/CalculatorService?wsdl
です。
このプロパティを有効にせず、HttpGetUrl を変更しないかまたは相対アドレスに設定した場合、HTTP のベース アドレスを指定せずにサービス ホストを開くとランタイムで例外がスローされます。
適用対象
.NET