【发布时间】:2011-01-08 20:37:44
【问题描述】:
我创建了一个服务,但没有在 servicehost 构造函数中提供基地址。 并通过调用 AddServiceEndpoint 方法将端点添加到主机。在 AddServiceEndpoint 方法中,我提供了服务的完整地址。在客户端代理上,调用失败,异常为“在http://localhost:8000/Test/TestService 处没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。 " 下面是ServiceHost和Client proxy的示例代码
using (ServiceHost host = new ServiceHost(typeof(Test.TestService)))
{
host.AddServiceEndpoint(typeof(Test.ITestService),
new BasicHttpBinding(), "http://localhost:8000/Test/TestService");
Console.ReadLine();
host.Close();
}
客户端代理:
EndpointAddress ep = new EndpointAddress("http://localhost:8000/Test/TestService");
ITestService proxy = ChannelFactory<ITestService>.CreateChannel(new BasicHttpBinding(), ep);
string s = proxy.HelloWorld();
我调用 proxy.Helloworld 的那一行失败,异常来了。
但是当我使用基地址创建 Servicehost 时,一切似乎都运行良好。 下面是我在 servicehost 构造函数中提供基地址的代码。
using (ServiceHost host = new ServiceHost(typeof(Test.TestService),new Uri("http://localhost:8000/Test")))
{
host.AddServiceEndpoint(typeof(Test.ITestService),
new BasicHttpBinding(), "/TestService");
Console.ReadLine();
host.Close();
}
谁能回答这里出了什么问题? : 我的运营合同如下:
[ServiceContract]public interface ITestService
{
[OperationContract]
string HelloWorld();
}
public class TestService: ITestService
{
public string HelloWorld()
{
return "Hello World";
}
}
问题是我没有使用任何配置文件,当在 servicehost 构造函数中提供基地址时一切正常,但是当我没有在 servicehost 构造函数中提供基地址并在 AddServicepoint 方法异常中提供完整的 uri 时来了。
【问题讨论】:
标签: wcf wcf-client