如何在本地网络中提供WCF服务?

时间:2015-04-22 19:19:32

标签: c# .net wcf

我是WCF的新手。我写了一个简单的服务:

namespace WcfService1
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        int Add(int a, int b);
    }
}

namespace WcfService1
{
    public class Service1 : IService1
    {
        public int Add(int a, int b)
        {
            return (a + b);
        }
    }
}

如何让本地网络中的某人访问此服务?

4 个答案:

答案 0 :(得分:1)

有几种方法可以托管(我认为发布在该上下文中实际意味着什么)wcf服务:

  1. 在Internet信息服务(IIS)中托管
  2. 在Windows激活服务(WAS)中托管
  3. 在控制台或桌面应用程序中托管(自托管)
  4. 在Windows服务中托管
  5. 如果您的服务不仅仅是测试项目,那么选项1和4通常很有趣; - )

    请查看该教程以获取更多信息:http://www.codeproject.com/Articles/550796/A-Beginners-Tutorial-on-How-to-Host-a-WCF-Service

答案 1 :(得分:1)

是的,你可以。您必须添加具有netTcpBinding的端点。此外,您必须为netTcp设置元数据行为,并使用net.tcp协议设置地址,如我在下面的代码中发布的那样。

<system.serviceModel>
<bindings>
  <netTcpBinding>
    <binding>
      <security mode="None" />
    </binding>
  </netTcpBinding>
</bindings>
<services>
  <service behaviorConfiguration="ServiceBehaviour" name="Service.Service1">
    <endpoint address="net.tcp://localhost:9009/service1"
              binding="netTcpBinding"
              contract="Service.IService1" />
    <endpoint address="mex" 
              binding="mexTcpBinding"
              contract="IMetadataExchange" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehaviour">
      <serviceMetadata />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
</system.serviceModel>

答案 2 :(得分:0)

此人需要为您提供的服务添加服务参考

这是: https://msdn.microsoft.com/en-us/library/bb386386.aspx

答案 3 :(得分:0)

您可以在本地IIS中托管您的服务,只需

1 - 在IIS中添加网站并设置内容目录和端口号

2-in内容视图,查找扩展名为.svc的文件

3浏览您的svc文件(确保IIS_IUSRS组可以访问您的文件),  这是您的网络服务地址。

网络中的其他人应该,右键单击他们的客户端项目并添加服务引用。

5 - 他们应该粘贴您的Web服务地址,但是他们应该使用您的IP地址而不是Web服务地址中的localhost。