gpt4 book ai didi

c# - 在 ServiceHost 中运行的 WCF 服务(控制台应用程序)

转载 作者:行者123 更新时间:2023-11-30 22:29:03 24 4
gpt4 key购买 nike

我正在尝试将之前在任务栏中的 .asmx 服务中运行的 WCF 服务包装到控制台应用程序中。

这是包装 WCF 服务的代码:

class Program
{
static void Main(string[] args)
{
Uri uri = new Uri("http://localhost:5000");

using (ServiceHost host = new ServiceHost(typeof(CheckoutService), uri))
{
Console.WriteLine("Prepping CheckoutService server");
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add(smb);

host.Open();

Console.Clear();
Console.WriteLine("CheckoutService server up and running");
Console.WriteLine("Press Return to stop service at any point");
Console.ReadLine();
host.Close();
}
}

但是,应该接收此服务的客户端应用程序(在服务被包装到控制台应用程序之前可以正常工作)现在因错误而崩溃:

There was no endpoint listening at http://localhost:5000/CheckoutService.svc that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

app.config 中此客户端的端点配置是:

<endpoint 
address="http://localhost:5000/CheckoutService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICheckoutService"
contract="CheckoutServiceServer.ICheckoutService" name="BasicHttpBinding_ICheckoutService" />

我想也许我在托管 WCF 服务的控制台项目中缺少某种形式的 .config 文件,但我可能是错的!

最佳答案

看起来您没有等待用户输入就关闭了主机。您是否缺少 Console.ReadLine()

关于c# - 在 ServiceHost 中运行的 WCF 服务(控制台应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10387119/

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