У меня есть служба dulpex WCF, размещенная в службе Windows. Я установил службу Windows из командной строки через InstallUtil.exe, запустил службу из панели управления службами. Теперь пришло время протестировать WCF. Итак, я добавляю новый консольный проект в качестве клиента, следующим шагом будет добавление веб-ссылки на проект. Однако я получил ошибку:
There was an error downloading `http://localhost:8733/KeyValueService/_vti_bin/ListData.svc/$metadata`.
Unable to connect to the remote server
No connection could be made because the target machine actively refused it 127.0.0.1:8733
Metadata contains a reference that cannot be resolved: `http://localhost:8733/KeyValueService`.
В app.config в сервисном проекте есть:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="VoiceApp.KeyValueService">
<endpoint address="http://localhost:8733/KeyValueService/" binding="wsDualHttpBinding" contract="VoiceApp.IService1" />
<endpoint address="http://localhost:8733/KeyValueService/mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
</basicHttpBinding>
</bindings>
<client>
</client>
Я следил за конфигурацией в блоге Metatata Exchange Endpoint но это не помогло бы.
Также внутри службы Windows у нас есть:
protected override void OnStart(string[] args)
{
if (serviceHost != null)
{
serviceHost.Close();
}
serviceHost = new ServiceHost(typeof(KeyValueService));
serviceHost.Open();
MyApplication.Start(); // a long running code...
}
Обновлено:
Мой шаг заключался в создании проекта службы Windows, а затем добавлении службы WCF.