gpt4 book ai didi

c# - ServiceHost 只支持类服务类型

转载 作者:可可西里 更新时间:2023-11-01 07:51:04 29 4
gpt4 key购买 nike

我有一个名为 WcfService2 的服务(我知道的原始服务),它有一个带有公共(public)接口(interface)的 IService.cs 文件:

namespace WcfService2
{
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet(UriTemplate = "/{value}")]
string GetData(string value);
}
}

然后我有我的公共(public)类 Service1.svc.cs 文件,它返回一个字符串值,如下所示:

namespace WcfService2
{
public class Service1 : IService1
{
public string GetData(string value)
{
return string.Format("You entered: {0}", value);
}
}
}

我现在正尝试使用控制台应用程序托管此服务,如下所示:

namespace Host
{
class Program
{
static void Main(string[] args)
{
WebHttpBinding binding = new WebHttpBinding();
WebServiceHost host =
new WebServiceHost(typeof(IService1));
host.AddServiceEndpoint(typeof(IService1),
binding,
"http://localhost:8000/Hello");
host.Open();
Console.WriteLine("I DONT LIKE REST!");
Console.WriteLine("Press <RETURN> to KILL REST FOR GOOD");
Console.ReadLine();
}
}
}

但是运行后出现错误:

ServiceHost only supports class service types.

所以这显然与我的 IService 是公共(public)接口(interface)类型有关。但我不知道如何创建它,当我第一次创建 WCF 服务应用程序 时,它会为您提供两个标准文件 IService 和 Service.svc 文件,如果我删除其中一个或,并且仅在中实现此解决方案当我尝试在本地 soultion 中添加 Web 服务时,一类没有找到。

有没有办法修改主机代码?

最佳答案

我建议你改变这个:

WebServiceHost host = new WebServiceHost(typeof(IService1));

为此:

WebServiceHost host = new WebServiceHost(typeof(Service1));

关于c# - ServiceHost 只支持类服务类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9863483/

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