2

当我的 ASP.NET 4.0 站点加载时,我收到以下错误,这是因为我在web.config文件中设置了 WCF 服务(我只是不够 WCF 专家,谷歌也没有帮助:)):

'[Path to my Service.svc]' 的端点没有与 None MessageVersion 的绑定。'System.ServiceModel.Description.WebScriptEnablingBehavior' 仅适用于 WebHttpBinding 或类似的绑定。

我正在使用webHttpBinding但遇到以下错误,所以现在我basicHttpBinding遵循这篇文章的建议后使用:

此服务的安全设置需要“匿名”身份验证,但托管此服务的 IIS 应用程序未启用它。

无论如何,这是来自我的 web.config 的相关信息。请帮忙!

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="ABC.ProjectName.Web.ServiceBehavior">
        <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
      </behavior>
    </serviceBehaviors>
    <endpointBehaviors>
      <behavior name="ABC.ProjectNameDell.Web.ServiceBehavior">
        <enableWebScript />
      </behavior>
    </endpointBehaviors>
  </behaviors>
  <serviceHostingEnvironment multipleSiteBindingsEnabled="true" 
                             aspNetCompatibilityEnabled="true" />
  <bindings>
    <basicHttpBinding>
      <binding name="webHttpBinding_AnonymousDisabled" >
        <security mode="TransportCredentialOnly">
          <transport clientCredentialType="Windows" />
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>
  <services>
    <service name="ABC.ProjectName.Web.AjaxService" >
      <endpoint address="/" 
                behaviorConfiguration="ABC.ProjectName.Web.ServiceBehavior"
                binding="basicHttpBinding"
                contract="ABC.ProjectName.Web.AjaxService" />
    </service>
  </services>
</system.serviceModel>
4

1 回答 1

1

您不能将 basicHttpBinding 与 enableWebScript 一起使用。将绑定设置为 WebHttpBinding。

  <service name="ABC.ProjectName.Web.AjaxService" >
    <endpoint address="/" behaviorConfiguration="ABC.ProjectName.Web.ServiceBehavior"
      binding="webHttpBinding"
      contract="ABC.ProjectName.Web.AjaxService" />
  </service>
于 2012-05-07T23:00:33.357 回答