Add an option to switch WCF metadata publishing

This commit is contained in:
stackia
2016-07-28 20:34:35 +08:00
parent 93ac6d5a28
commit c13eb02e51
2 changed files with 16 additions and 3 deletions

View File

@@ -105,7 +105,10 @@ namespace ArchiSteamFarm {
[JsonProperty(Required = Required.DisallowNull)]
internal readonly ushort WCFPort = DefaultWCFPort;
[JsonProperty(Required = Required.DisallowNull)]
[JsonProperty(Required = Required.DisallowNull)]
internal readonly bool WCFPublishMetadata = false;
[JsonProperty(Required = Required.DisallowNull)]
internal readonly bool Statistics = true;
[JsonProperty(Required = Required.DisallowNull)]

View File

@@ -26,6 +26,7 @@ using System;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
namespace ArchiSteamFarm {
[ServiceContract]
@@ -87,8 +88,17 @@ namespace ArchiSteamFarm {
}
Logging.LogGenericInfo("Starting WCF server...");
ServiceHost = new ServiceHost(typeof(WCF));
ServiceHost.AddServiceEndpoint(typeof(IWCF), new BasicHttpBinding(), URL);
ServiceHost = new ServiceHost(typeof(WCF), new Uri(URL));
if (Program.GlobalConfig.WCFPublishMetadata)
{
ServiceHost.Description.Behaviors.Add(new ServiceMetadataBehavior
{
HttpGetEnabled = true
});
ServiceHost.AddServiceEndpoint(ServiceMetadataBehavior.MexContractName,
MetadataExchangeBindings.CreateMexHttpBinding(), "mex");
}
ServiceHost.AddServiceEndpoint(typeof(IWCF), new BasicHttpBinding(), string.Empty);
try {
ServiceHost.Open();