我还在学习,我在使用BasicHttpBinding将同一网络中的另一台连接的计算机连接到我的简单WCF服务时遇到问题。
服务器:
static void Main(string[] args)
{
string endPointAddress = "http://localhost:9942/ServiceTest";
Uri baseAddress = new Uri(endPointAddress);
var host = new ServiceHost(typeof(SampleService), baseAddress);
BasicHttpBinding httpBinding = new BasicHttpBinding(BasicHttpSecurityMode.None);
host.AddServiceEndpoint(typeof(ISampleService), httpBinding, "ISampleService");
host.Open();
Console.WriteLine("Service up and running at:");
foreach (var ea in host.Description.Endpoints)
{
Console.WriteLine(ea.Address);
}
Console.ReadLine();
客户端:
public class ProxyTestService : ClientBase<ISampleService>, ISampleService {
public ProxyTestService(string address)
:base (new BasicHttpBinding(BasicHttpSecurityMode.None),new EndpointAddress($"http://{address}:9942/ServiceTest/ISampleService"))
{}
public DateTime GetServerTime()
{
return base.Channel.GetServerTime();
}}
当我在计算机上检查主机运行的位置时,它很好(address = localhost)。
但是,当我从网络中的另一台计算机(地址= IPComputerHost)连接时,存在以下问题:
没有终点收听 可以接受的http://192.168.1.111:9942/ServiceTest/ISampleService 消息。这通常是由不正确的地址或SOAP引起的 行动。有关更多详细信息,请参阅InnerException(如果存在)。 InnerException:无法连接到远程服务器
和
您尝试为不支持的服务创建频道 .Net框架。您可能遇到HTTP 端点。
当我使用NetTcpBinding时,一切都是正确的。 BasicHttpBinding有什么不同?