У меня есть приложение Unity на основе C # WPF, в котором есть Модуль, который связывается с проектом на основе WCF в рамках того же решения.
DLL WCF работает, если я использую тестовый хост WCF, чтобы сделать его активной службой,но время ожидания, если я пытаюсь создать ServiceHost из кода.
вот код, который находится в инициализации модулей Unity ()
host = new ServiceHost(typeof(AtomCfgModelClient));
host.Open();
Вот мой раздел app.config
<endpoint address="http://localhost:8080/AtomCfgModelService"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAtomCfgModel"
contract="AtomCfgModel.IAtomCfgModel" name="WSHttpBinding_IAtomCfgModel">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
<services>
<service name="AtomCfgModule.AtomCfgModel.AtomCfgModelClient" >
<endpoint address="" binding="wsHttpBinding" contract="AtomCfgModel.IAtomCfgModel" >
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint name="mex" address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/AtomCfgModelService" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior >
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
ive отключил «запуск хоста службы WCF при отладке» из настройки свойств проекта wcf.
Итаквышеупомянутая конфигурация, кажется, загружается нормально из файла трассировки wcf, но когда я иду использовать любую из служб, я получаю тайм-аут без какой-либо информации, которую я вижу, которая позволяет мне знать, что является причиной тайм-аута.
здесь - сообщение об ошибке от трассировки wcf, перед этим сообщением об исключении все сообщения кажутся успешными.HTTP-запрос к http://localhost:8080/AtomCfgModelService' превысил установленное время ожидания 00: 00: 59.9840000.Время, отведенное для этой операции, могло быть частью более длительного времени ожидания.
Что сбивает с толку, так это то, что если я использую тестовый хост WCF, то вышеуказанная конфигурация работает
String arg = "/service:\"" + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AtomCfgModel.dll") + "\" /config:\"" + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "GISShell.exe.config") + "\"";
System.Diagnostics.Process.Start(@"c:\WcfSvcHost.exe", arg);
.Приведенный выше код, выполняющий wcfsvchost.exe, использует ту же самую конфигурацию (и dll WCF), и я не получаю тайм-аут.
Любые пункты о том, как отладить / исправить это было бы здорово.