ServiceMetadataBehavior 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
控制服務中繼資料與相關資訊的發行。
public ref class ServiceMetadataBehavior : System::ServiceModel::Description::IServiceBehavior
public class ServiceMetadataBehavior : System.ServiceModel.Description.IServiceBehavior
type ServiceMetadataBehavior = class
interface IServiceBehavior
Public Class ServiceMetadataBehavior
Implements IServiceBehavior
- 繼承
-
ServiceMetadataBehavior
- 實作
範例
下列程式碼範例會示範如何在組態檔中使用 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>
備註
將 ServiceMetadataBehavior 物件新增至 ServiceDescription.Behaviors 應用程式組態檔中的集合 (或 < serviceMetadata > 元素,) 啟用或停用服務中繼資料的發行。 然而,將行為加入至服務並不足以啟用中繼資料發行:
若要啟用 WS-Transfer GET 中繼資料擷取,您也必須將端點新增至合約為
IMetadataExchange
的服務。 如需範例,請參閱 如何:使用程式碼發佈服務的中繼資料。 您可以將IMetadataExchange
端點設定為任何其他端點。若要啟用 HTTP GET 中繼資料擷取,請將 HttpGetEnabled 屬性設定為
true
。 如需 HTTP GET 中繼資料位址的詳細資訊,請參閱 HttpGetEnabled 。
IMetadataExchange
端點的位址會遵循與結合基底位址和端點位址相關的一般規則。 如需詳細資訊,請參閱 發佈中繼資料。
若要使用組態檔啟用中繼資料的發行,請將serviceMetadata > 元素新增 < 至 < serviceBehaviors > 元素,並將專案與 < 您要發行中繼資料的服務 > 元素產生關聯。 如需範例,請參閱 如何:使用組態檔發佈服務的中繼資料。 此類別具有下列成員:
HttpGetEnabled 屬性會指定是否針對 HTTP/GET 要求傳回中繼資料。
HttpGetUrl 屬性 (搭配基底位址) 會指定 HTTP/GET 位址。
HttpsGetEnabled 屬性會指定是否針對 HTTPS/GET 要求傳回中繼資料。
HttpsGetUrl 屬性 (與基底位址連結) 會指定 HTTPS/GET 位址。
MetadataExporter 屬性會傳回基礎匯出工具。
一般來說,ServiceMetadataBehavior 是從應用程式組態檔中使用。 如需程式碼範例,請參閱<範例>一節。
建構函式
ServiceMetadataBehavior() |
初始化 ServiceMetadataBehavior 類別的新執行個體。 |
欄位
MexContractName |
傳回字串 |
屬性
ExternalMetadataLocation |
取得或設定值,這個值是服務中繼資料的位置。 |
HttpGetBinding |
取得或設定當傳輸是 HTTP 時要用來配置中繼資料擷取的繫結。 |
HttpGetEnabled |
取得或設定值,這個值會指出是否發行要使用 HTTP/GET 要求擷取的服務中繼資料。 |
HttpGetUrl |
取得或設定為 HTTP/GET 要求發行中繼資料的位置。 |
HttpsGetBinding |
取得或設定當傳輸是 HTTPS 時要用來設定中繼資料擷取的繫結。 |
HttpsGetEnabled |
取得或設定值,這個值會指出是否發行服務中繼資料以使用 HTTPS/GET 要求進行擷取。 |
HttpsGetUrl |
取得或設定為 HTTPS/GET 要求發行中繼資料的位置。 |
MetadataExporter |
取得或設定用來發行服務中繼資料的內部 MetadataExporter 物件。 |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |