開發環境: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 服務也可以正常被調用