2017-09-16 100 views
0

這是我的第一個Web服務,我試圖按照教程上的Web服務創建一個自定義的驗證,我堅持,因爲我得到這個錯誤:WCF Web服務不能在Web Access服務名稱配置

「WcfOrderingService.Services.AuthenticationTokenService」值根據其數據類型「serviceNameType」無效 - 枚舉約束失敗。

web配置:

 <service name ="WcfOrderingService.Services.AuthenticationTokenService" 
      behaviorConfiguration="ServiceBehaviourHttp"> 
    <endpoint address="" behaviorConfiguration="WcfOrderingService.AuthenticationTokenServiceAspNetAjaxBehavior" 
     binding="webHttpBinding" contract="WcfOrderingService.Services.AuthenticationTokenService.Authenticate" /> 
    </service> 

.svc.cs -

namespace WcfOrderingService.Services 
{ 
[ServiceContract] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class AuthenticationTokenService 
{ 
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, 
    ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)] 
    [OperationContract] 
    public string Authenticate(Credentials creds) 
    { 
     ICredentialsValidator validator = new CredentialsValidator(); 
     if (validator.IsValid(creds)) 
      return new TokenBuilder().Build(creds); 
     throw new InvalidCredentialException("Invalid credentials"); 
    } 
} 

}

我已經試過我在網上找到的大多數事情,服務名稱等的變化,但無法找到一個答案。

在此先感謝。

回答

0

可能對服務的引用無法正常工作了。這可能有幾個原因。

該解決方案將首先刪除servicereference,然後再次添加它。

+0

謝謝,但如果我甚至開始了一個全新的WCF服務應用程序項目,然後添加一個WCF服務(支持Ajax)服務 - 它給了我同樣的錯誤。 –

+0

啊,我認爲配置不正確。當您將端點的合同屬性更改爲WcfOrderingService.Services.AuthenticationTokenService時,它會起作用嗎? –

+0

它不起作用intellisense也沒有選擇它,默認的service1雖然。 –