2011-10-24 49 views
0

我遇到配置问题,尝试让WCF服务工作。编译器不喜欢enablewebscript作为行为中的一个选项。wcf enablewebscript元素不被识别

下面是web.config中的声明元件

<behaviors> 
    <serviceBehaviors> 
     <behavior name="metadataAndDebug"> 
      <serviceMetadata 
       httpGetEnabled="true" 
       httpGetUrl=""/> 
      <serviceDebug 
       httpHelpPageEnabled="true" 
       includeExceptionDetailInFaults="true" /> 
     </behavior> 
     <behavior name="AutoCompleteGet"> 
      <serviceMetadata httpGetEnabled="true"/> 
     </behavior> 
    </serviceBehaviors> 

    <endpointBehaviors> 
    <behavior name="MyApp.Webservices.AspNetAjaxBehavior"> 
     <enableWebScript/>   
    </behavior>   
    </endpointBehaviors>   
</behaviors> 

和由编译器所报告的错误部分。

Parser Error Message: Invalid element in configuration. The extension name 'enableWebScript' is not registered in the collection at system.serviceModel/extensions/behaviorExtensions. 

我在服务器上的以下信息: - 在Windows Server网络版Service Pack 1个的 - 微软的AJAX扩展V1.0安装

注 - 3.5SP1安装 .NET框架:我只是在今天上午打开了.NET Framework 3.0中的WCF激活(因为这是该服务器上第一次使用WCF服务)。在激活之后,错误开始了。在激活之前,服务返回了预期的404错误消息。

任何想到哪里看,以及为什么安装的服务3.5框架似乎不被使用?

回答

0

(我知道这是一个老气的问题,但无论如何 - 只是有同样的问题我自己在客户端,通过谷歌搜索在您的悬而未决的问题来了,所以......)

一些其他来源的我已经看到它表示它与已经卸载的WCF(使用ServiceModelReg.exe -u命令)相关。因为它不是我的服务器我的工作,我不知道,如果是这样的话,但具体问题可以通过左右在你的web.config手动注册行为扩展来工作:

<extensions> 
     <behaviorExtensions> 
      <add name="enableWebScript" type="System.ServiceModel.Configuration.WebScriptEnablingElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </behaviorExtensions> 
    </extensions> 

机会是,如果是不可少的,虽然,其他的东西将是 - 你可能想看看一台机器上,你知道是工作在machine.config并采取整节 - 这里的矿以供参考:

<extensions> 
     <behaviorExtensions> 
      <add name="persistenceProvider" type="System.ServiceModel.Configuration.PersistenceProviderElement, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      <add name="workflowRuntime" type="System.ServiceModel.Configuration.WorkflowRuntimeElement, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      <add name="enableWebScript" type="System.ServiceModel.Configuration.WebScriptEnablingElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      <add name="webHttp" type="System.ServiceModel.Configuration.WebHttpElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      <add name="Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior" type="Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior, Microsoft.VisualStudio.Diagnostics.ServiceModelSink, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></behaviorExtensions> 
     <bindingElementExtensions> 
      <add name="webMessageEncoding" type="System.ServiceModel.Configuration.WebMessageEncodingElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      <add name="context" type="System.ServiceModel.Configuration.ContextBindingElementExtensionElement, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </bindingElementExtensions> 
     <bindingExtensions> 
      <add name="wsHttpContextBinding" type="System.ServiceModel.Configuration.WSHttpContextBindingCollectionElement, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      <add name="netTcpContextBinding" type="System.ServiceModel.Configuration.NetTcpContextBindingCollectionElement, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      <add name="webHttpBinding" type="System.ServiceModel.Configuration.WebHttpBindingCollectionElement, System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      <add name="basicHttpContextBinding" type="System.ServiceModel.Configuration.BasicHttpContextBindingCollectionElement, System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </bindingExtensions> 
    </extensions> 

中当然这取决于首先失踪的原因,但不能保证它能解决问题。祝你好运...

+0

回顾老问题并接受这个答案。我最终解决了这个问题,但不记得如何。 – Jason