gpt4 book ai didi

wcf - 客户端无法连接到启动时没有 BaseAddress 的自承载 WCF 服务

转载 作者:行者123 更新时间:2023-12-02 00:35:51 27 4
gpt4 key购买 nike

我创建了一个服务,但没有在 servicehost 构造函数中提供基地址。并通过调用 AddServiceEndpoint 方法将端点添加到主机。在 AddServiceEndpoint 方法中,我提供了服务的完整地址。在客户端代理上,调用失败,异常为“没有在 http://localhost:8000/Test/TestService 上监听的端点可以接受消息。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。 “下面是ServiceHost和Client代理的示例代码

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 构造函数中提供基地址的代码。

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 时来了。

最佳答案

因为你从不打电话

host.Open();

在问题中显示的任何一个代码片段中,我都不希望它们中的任何一个起作用。

您确定发布的代码与导致问题的代码完全相同吗?

关于wcf - 客户端无法连接到启动时没有 BaseAddress 的自承载 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4636006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com