Я создал службу WCF и разместил ее через консоль. но когда я создал еще один веб-приложения и пытался добавить его справочной службы его ошибка отдаванияХостинг службы WCF через консоль
Метаданные содержат ссылки, которые не могут быть решены: «net.tcp: //192.0.0.0: 9100/ConsoleApplication3/Коммуникатор .svc/mextcp. Не удалось подключиться к net.tcp: //192.0.0.0: 9100/ConsoleApplication3/Communicator.svc/mextcp. Попытка подключения продолжалась в течение 0-временного интервала 00: 00: 00.9843750. TCP код ошибки 10061: соединение не может быть сделано, потому что целевая машина активно отказалась от нее 192.0.0.0:9100. Не удалось установить соединение, так как целевая машина активно отклонила его. 192.0.0.0:9100 Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу .
Вот код:
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
try
{
using (ServiceHost host = new ServiceHost(typeof(Communicator)))
{
host.Open();
Console.WriteLine("Press <Enter> to terminate the Host application.");
Console.ReadLine();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
}
[ServiceContract]
public interface ICommunicator
{
[OperationContract]
string SayHello();
}
public class Communicator : ICommunicator
{
public string SayHello()
{
return "I am here";
}
}
А вот конфигурация:
<configuration>
<system.serviceModel>
<services>
<service name="ConsoleApplication3.Communicator" behaviorConfiguration="CommunicatorBehavior">
<!-- Service Endpoints -->
<endpoint address="ConsoleApplication3" binding="netTcpBinding"
contract="ConsoleApplication3.ICommunicator"/>
<!-- This Endpoint is used for genertaing the proxy for the client -->
<!-- To avoid disclosing metadata information, set the value below to false and
remove the metadata endpoint above before deployment -->
<endpoint address="mex" contract="IMetadataExchange" binding="mexTcpBinding" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:9100/"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="CommunicatorBehavior">
<serviceMetadata httpGetEnabled="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Итак, каким должен быть адрес, который я попробовал 'net.tcp: // localhost: 9100/mex ', но все тот же самый обман – BreakHead
@BreakHead: или этот, кажется, тот, который вы в конечном итоге собираетесь : 'net.tcp: //192.168.168.145: 9100/' –
Thanx, но по-прежнему та же ошибка :( – BreakHead