开发环境:Vs2010SP1 Rel
问题:开发WCF服务端新建Wcf服务的过程中,正常的新建了svc服务,在浏览器中打开总是提示找不到终结点
解决:添加svc文件时,应该选择WCF服务,而不是WCF数据服务,
如果你选择WCF数据服务,生成的svc头命令是
<%@ ServiceHost Language="C#" Factory="System.Data.Services.DataServiceHostFactory, System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Service="OrderAnswer.WcfHost.WcfDataService1" %>
在浏览器中浏览这个服务,总是会提示缺少终结点
自动代码生成,这个跟选择WCF服务,生成的文件时不一样的
public class WcfDataService1 : DataService< /* TODO: 在此放置数据源类名*/ >
{
// 仅调用此方法一次以初始化涉及服务范围的策略。
public static void InitializeService(DataServiceConfiguration config)
{
// TODO: 设置规则以指明哪些实体集和服务操作是可见的、可更新的,等等。
// 示例:
// config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead);
// config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
}
Note:
在服务端新建WCF服务时,配置文件会自动添加 system.serviceModel 节点
<system.serviceModel> <behaviors> <serviceBehaviors> <behavior name=""> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="false" /> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> </system.serviceModel>
我发现用VS2010 SP1 服务端添加SVC服务时,config文件中不包含 bindings和services 服务也可以正常被调用