2011-10-24 73 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