初学者WCF服务设置

时间:2011-09-23 13:39:53

标签: asp.net wcf asp.net-4.0

我正在试图找出WCF服务。我有1次工作1次,现在我似乎无法完成这项工作(甚至按照前面的例子)。我不了解WCF服务的几个方面。例如,为什么它需要端点。他们的目的是什么?但是,如果任何人可以帮助我克服这个错误,那就太好了。

我正在尝试设置默认的WCF服务。我还没有添加任何代码。我只是想让服务显示出来。

我有pilltrakr.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace serviceContract
{
    public class pilltrakr : Ipilltrakr
    {
        public void DoWork()
        {
        }
    }
}

我有Ipilltrakr:

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

我有:pilltrakr.svc

<%@ ServiceHost Language="C#" Debug="true" Service="pilltrakr" CodeBehind="~/App_Code/pilltrakr.cs" %>

在我的web.config中,我有以下内容:

  <system.serviceModel>
    <services>
      <service name="serviceContract.pilltrakr" behaviorConfiguration="InternalWebService">
        <endpoint contract="serviceContract.Ipilltrakr" binding="basicHttpBinding" address="pilltrakr" 
bindingConfiguration="InternalHttpBinding" bindingNamespace="serviceContract"/>
      </service>
    </services>
  </system.serviceModel> 

我收到以下错误:

  

'/ pilltrakr'应用程序中的服务器错误。 'pilltrakr'类型,   作为ServiceHost指令中的Service属性值提供,   或在配置元素中提供   system.serviceModel / serviceHostingEnvironment / serviceActivations可以   找不到。描述:期间发生了未处理的异常   执行当前的Web请求。请查看堆栈跟踪   有关错误及其来源的更多信息   代码。

     

异常详细信息:System.InvalidOperationException:类型   'pilltrakr',作为服务属性值提供   ServiceHost指令,或在配置元素中提供   system.serviceModel / serviceHostingEnvironment / serviceActivations可以   找不到。

1 个答案:

答案 0 :(得分:4)

您需要在.svc文件中指定服务类的确切名称,包括命名空间:

<%@ ServiceHost 
    Language="C#" 
    Debug="true" 
    Service="serviceContract.pilltrakr" 
    CodeBehind="~/App_Code/pilltrakr.cs" 
%>

就您关于端点的问题而言,它们用于定义服务将响应的地址以及它将使用的绑定。例如,您可以在2个不同的端点上公开您的服务=&gt;一个使用SOAP,另一个使用REST。