Asp.net 未识别wcf enablewebscript元素

Asp.net 未识别wcf enablewebscript元素,asp.net,wcf,configuration,Asp.net,Wcf,Configuration,我遇到一个服务器配置问题,该服务器试图使WCF服务正常工作。编译器不喜欢将enablewebscript作为行为中的选项 下面是web.config中声明元素的部分 <behaviors> <serviceBehaviors> <behavior name="metadataAndDebug"> <serviceMetadata httpGetEnabled="true"

我遇到一个服务器配置问题,该服务器试图使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>
我在服务器上有以下信息: -Windows Server Web Edition Service Pack 1 -已安装.NET Framework 3.5sp1 -已安装Microsoft AJAX Extensions v1.0

注意:今天早上我刚刚在.NETFramework3.0中打开了WCF激活,因为这是该服务器上第一次使用WCF服务。正是在激活之后,错误才开始。在激活之前,服务返回预期的404错误消息


你有没有想过该去哪里看,以及为什么安装的服务3.5框架看起来没有被使用?

我知道这是一个老生常谈的问题,但不管怎样-我自己在一个客户那里也遇到了同样的问题,通过谷歌搜索发现了你没有回答的问题,所以

我看到的一些其他来源表明,它与已使用ServiceModelReg.exe-u命令卸载的WCF有关。由于我正在使用的不是我的服务器,我不知道是否是这种情况,但可以通过在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>

当然,根据最初丢失的原因,我们不能保证它会修复它。祝你好运…

重温过去的问题并接受这个答案。我最终解决了这个问题,但想不起来是怎么解决的。
    <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>