У меня есть эта конфигурация в моем app.config:
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="myBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
I want to expose this service programmatically from my desktop app:
Я определяю экземпляр хоста:
ServiceHost host = new ServiceHost(typeof(MyType), new Uri("http://" + hostName + ":" + port + "/MyName"));
Затем я добавляю конечную точку с ее привязкой:
var binding = new BasicHttpBinding("myBinding");
host.AddServiceEndpoint(typeof(IMyInterface), binding, "MyName");
Теперь я хочу заменить приведенный ниже код кодом, который считывает поведение с именем myBehavior из файла конфигурации, а не жестко задает параметры поведения.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior() { HttpGetEnabled = true };
host.Description.Behaviors.Add(smb);
// Enable exeption details
ServiceDebugBehavior sdb = host.Description.Behaviors.Find<ServiceDebugBehavior>();
sdb.IncludeExceptionDetailInFaults = true;
Затем я могу открыть host.
host.Open();
* ИЗМЕНИТЬ *
Настройка служб с помощью файлов конфигурации
Вам не нужен этот способ, вы должны сделать так, чтобы хост автоматически брал свои настройки из файла конфигурации, а не отдавал их вручную, читайте эта статья (Настройка служб с помощью файлов конфигурации), она вам поможет, я разместил свою службу в одной строке на C# и несколько в config.
Это вторая статья о (настройке служб WCF в коде), моей вина в том, что я пытался смешать два пути!
Я добавлю это как ответ.