1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel
{
using System.IO;
using System.Collections.Generic;
using System.ServiceModel.Description;
using System.Diagnostics.CodeAnalysis;
using System.Configuration;
using System.ServiceModel.Web;
using System.Net;
using System.ServiceModel.Channels;
class WebScriptServiceHost : ServiceHost
{
static readonly string WebScriptEndpointKind = "webScriptEndpoint";
public WebScriptServiceHost(Type serviceType, params Uri[] baseAddresses)
:
base(serviceType, baseAddresses)
{
}
protected override void OnOpening()
{
WebServiceHost.AddAutomaticWebHttpBindingEndpoints(this, this.ImplementedContracts,
SR2.GetString(SR2.JsonWebScriptServiceHostOneServiceContract, this.ImplementedContracts.Count),
SR2.GetString(SR2.JsonWebScriptServiceHostAtLeastOneServiceContract), WebScriptEndpointKind);
foreach (ServiceEndpoint endpoint in this.Description.Endpoints)
{
if (endpoint.Binding != null && endpoint.Binding.CreateBindingElements().Find<WebMessageEncodingBindingElement>() != null)
{
if (endpoint.Behaviors.Find<WebHttpBehavior>() == null)
{
ConfigLoader.LoadDefaultEndpointBehaviors(endpoint);
if (endpoint.Behaviors.Find<WebHttpBehavior>() == null)
{
endpoint.Behaviors.Add(new WebScriptEnablingBehavior());
}
}
}
}
base.OnOpening();
}
}
}
|