gpt4 book ai didi

WCF 服务 - 运行时在接口(interface)上看不到 ServiceContract

转载 作者:行者123 更新时间:2023-12-02 04:36:52 29 4
gpt4 key购买 nike

我是 WCF 新手,正在尝试运行我的第一个服务。我已经很接近了,但仍然卡在这个问题上。

在我的接口(interface)定义文件中,我有这个:

[ServiceContract(Namespace="http://mysite.com/wcfservices/2009/02")]       
public interface IInventoryService
{
[OperationContract]
string GetInventoryName(int InventoryID);
}

然后我有继承它的类文件(用于服务):

   public class InventoryService : IInventoryService
{
// This method is exposed to the wcf service
public string GetInventoryName(int InventoryID)
{
return "White Paper";
}

最后,在我的主机项目中,我有这个:

    ServiceHost host = new ServiceHost(typeof(Inventory.InventoryService));
host.AddServiceEndpoint(typeof(Inventory.InventoryService), new NetTcpBinding(),
"net.tcp://localhost:9000/GetInventory");
host.Open();

一切都编译得很好,当主机去添加服务端点时,它会爆炸:“合约类型 Inventory.InventoryService 未使用 ServiceContractAttribute 进行属性。为了定义有效的合约,指定的类型(合约接口(interface)或服务类)必须使用 ServiceContractAttribute 进行属性。”

我知道我在这里遗漏了一些简单的东西。我已将接口(interface)明确标记为服务契约(Contract),并且在主机项目中引用了该项目。

最佳答案

ServiceHost host = new ServiceHost(typeof(Inventory.InventoryService));
host.AddServiceEndpoint(typeof(Inventory.InventoryService), new NetTcpBinding(),
"net.tcp://localhost:9000/GetInventory");
host.Open();

如果您的 ServiceContract 属性位于接口(interface)而不是具体类上,请尝试以下操作:

ServiceHost host = new ServiceHost(typeof(Inventory.InventoryService));
host.AddServiceEndpoint(typeof(Inventory.IInventoryService), new NetTcpBinding(),
"net.tcp://localhost:9000/GetInventory");
host.Open();

关于WCF 服务 - 运行时在接口(interface)上看不到 ServiceContract,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/592604/

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