WCF 服务引发无效操作异常



我正在尝试创建基本的WCF服务并将其托管在控制台应用程序上。

这是我的 WCF 项目代码。

是服务.cs

using System.ServiceModel;  
namespace MultipleSeviceContractAppl  
{  
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "ISampleService" in both code and config file together.  
    [ServiceContract]  
    public interface ISampleService  
    {  
        [OperationContract]  
        string DoWork();  
    }  
}

样品服务.cs

namespace MultipleSeviceContractAppl  
{  
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "SampleService" in both code and config file together.  
    public class SampleService : ISampleService  
    {  
        public string DoWork()  
        {  
            return "Message from WCFservice";  
        }  
    }  
}

应用配置

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
  <system.serviceModel>  
    <behaviors>  
      <serviceBehaviors>  
        <behavior name="mexBehaviour">  
          <serviceMetadata httpGetEnabled="false"/>  
          <serviceDebug includeExceptionDetailInFaults="false" />  
        </behavior>  
      </serviceBehaviors>  
    </behaviors>
    <services>  
      <service name="MultipleSeviceContractAppl.SampleService" behaviorConfiguration="mexBehaviour">  
        <endpoint address="SampleService" binding="netTcpBinding" contract="MultipleSeviceContractAppl.ISampleService">  
        </endpoint>  
        <host>  
          <baseAddresses>  
            <add baseAddress="http://localhost:8733/"/>  <!--For metadata exchange-->
            <add baseAddress="net.tcp://localhost:8737/" />  <!--Endpoint, netTCP binding, For data exchange-->
          </baseAddresses>  
        </host>  
      </service>  
    </services>
  </system.serviceModel>  
</configuration>

控制台应用程序上的 WCF 托管 - 程序.cs

using System;  
using System.ServiceModel;  
namespace ConsumeWCFApplicationAppl  
{  
    class Program  
    {  
        static void Main()  
        {  
            using (ServiceHost host = new ServiceHost(typeof(MultipleSeviceContractAppl.SampleService)))  
            {  
                host.Open();  
                Console.WriteLine("Host started @" + DateTime.Now.ToString());  
                Console.ReadKey();  
            }  
        }  
    }  
}

在控制台应用程序中的线路主机。Open((;,抛出以下异常。

类型为"系统.无效操作异常"的未处理异常 发生在系统服务模型中.dll 其他信息:服务 "MultipleSeviceContractAppl.SampleService"的申请量为零 (非基础结构(终结点。这可能是因为没有配置 为您的应用程序找到文件,或者因为没有服务元素 可以在配置文件中找到与服务名称匹配的内容,或者 因为服务元素中未定义任何终结点。帮助我 找出我的错误。谢谢

需要在控制台应用中复制配置,并将对服务模型程序集的 DLL 的引用添加到此项目中...

<behaviors>  
  <serviceBehaviors>  
    <behavior name="mexBehaviour">  
      <serviceMetadata httpGetEnabled="false"/>  
      <serviceDebug includeExceptionDetailInFaults="false" />  
    </behavior>  
  </serviceBehaviors>  
</behaviors>
<services>  
  <service name="MultipleSeviceContractAppl.SampleService" behaviorConfiguration="mexBehaviour">  
    <endpoint address="SampleService" binding="netTcpBinding" contract="MultipleSeviceContractAppl.ISampleService">  
    </endpoint>  
    <host>  
      <baseAddresses>  
        <add baseAddress="http://localhost:8733/"/>  <!--For metadata exchange-->
        <add baseAddress="net.tcp://localhost:8737/" />  <!--Endpoint, netTCP binding, For data exchange-->
      </baseAddresses>  
    </host>  
  </service>  
</services>

相关内容

最新更新