Я экспериментировал с WCF и добавил DataContract на свой сервер и обновил ServiceContract. Когда ServiceReference был сначала добавлен к клиенту, я запускал их как на одном компьютере, поэтому я использовал localhost. Ive теперь попытался подключить 2 шт через Ethernet-кабель и таким образом обновить ссылку на службу. Ive установил IP-адрес серверов на LAN-адресе: 192.168.10.10
. Следующий код выполняется при нажатии кнопки на форме серверов.Добавление ссылки на службу WCF (отказ)
private void btnCommenceService_Click(object sender, EventArgs e)
{
host = new ServiceHost((typeof(Service)), new Uri[] { new Uri("http://localhost:9000")});
host.AddServiceEndpoint(typeof(IServices),
new WSDualHttpBinding(),
"ServerService");
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add(smb);
host.Open();
txtStatus.Text = "Service is open.";
}
Ive повернул брандмауэр выключен на обоих ПК и успешно ping'd адрес "http://192.168.10.10"
с клиентского ПК. Мне также удалось получить доступ к некоторой случайной веб-странице, если я наберу ее в свой браузер.
В клиенте, если я нажимаю на мое решение и выбрать «Add Service Reference» и введите
"http://192.168.10.10"
"http://192.168.10.10:9000"
"http://192.168.10.10:9000/ServerService"
Все они возвращаются с некоторой формой ошибки, как правило, что-то по следующим направлениям:
The document at the url http://192.168.10.10:9000/ was not recognised as a known document type.
The error message for each known type may help u fix the problem:
-Report from 'XML Schema' is The document format is not recognised(the content type is 'text/html;charset=utf-8').'.
Report from DISCO Document is There was an error downloading `'http://localhost:9000/?disco'.'.`
Unable to connect to the remote server.
No connection could be made because the target machine actively refused it 127.0.0.1:9000
etc
Каждый получил некоторые указатели, почему он не работает по локальной сети пока я могу получить доступ и пинг т он обращается?
Что произойдет, если вы укажете свой браузер на: 'http://192.168.10.10:9000/ServerService?wsdl' – AFischbein
Неверный адрес –
ive только что напечатал telnet 192.168.10.10 9000 в командной строке и, похоже, работает. предполагая, что это означает, что что-то не так с чем-то в самом проекте. У меня нет app.config на стороне сервера. Однако у меня есть клиент. Его полностью ясный atm хотя bar Xml version = "1.0" encoding = "utf-8"?> –