Тайм-аут самостоятельного хостинга WCF - PullRequest
0 голосов
/ 12 июля 2011

У меня есть приложение 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), и я не получаю тайм-аут.

Любые пункты о том, как отладить / исправить это было бы здорово.

...