我正在试图找出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可以 找不到。
答案 0 :(得分:4)
您需要在.svc
文件中指定服务类的确切名称,包括命名空间:
<%@ ServiceHost
Language="C#"
Debug="true"
Service="serviceContract.pilltrakr"
CodeBehind="~/App_Code/pilltrakr.cs"
%>
就您关于端点的问题而言,它们用于定义服务将响应的地址以及它将使用的绑定。例如,您可以在2个不同的端点上公开您的服务=&gt;一个使用SOAP,另一个使用REST。