2009-10-04 13 views
12

Ho appena creato il mio primo servizio Web.WebService Problem Asp.Net

io uso:

  • IIS 7.5
  • VS 2008
  • Net 3,5

Dopo installa IIS e accedere al mio file ASMX in IE ottengo l'errore seguente:

HTTP Error 500.21 - Internal Server Error Handler "ScriptHandlerFactory" has a bad module "ManagedPipelineHandler" in its module list

L'ho cercato su google da 2 ore ma non trovare una soluzione.

la mia configurazione è qui:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
     <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
       <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
       <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
        <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/> 
        <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
        <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
        <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
       </sectionGroup> 
      </sectionGroup> 
     </sectionGroup> 
    </configSections> 
    <appSettings/> 
    <connectionStrings> 
       </connectionStrings> 
    <system.web> 
     <!-- 
       Legen Sie beim Kompilieren debug="true" fest, um 
       Debugsymbole in die kompilierte Seite einzufügen. 
       Da dies die Leistung beeinträchtigt, sollte der 
       Wert nur beim Entwickeln auf "True" gesetzt werden. 
      --> 
     <compilation debug="true"> 
      <assemblies> 
       <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
       <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
       <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
       <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      </assemblies> 
     </compilation> 
     <!-- 
       Der Abschnitt <authentication> ermöglicht die Konfiguration 
       des Sicherheitsauthentifizierungsmodus, mit dem 
       ASP.NET eingehende Benutzer identifiziert. 
      --> 
     <authentication mode="Windows"/> 
     <!-- 
       Der Abschnitt <customErrors> ermöglicht die Konfiguration 
       der Vorgehensweise bei unbehandelten Fehlern während 
       der Anforderungsausführung. Insbesondere können 
       Entwickler HTML-Fehlerseiten konfigurieren, die anstelle 
       einer Fehlerstapelüberwachung angezeigt werden. 

      <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> 
       <error statusCode="403" redirect="NoAccess.htm" /> 
       <error statusCode="404" redirect="FileNotFound.htm" /> 
      </customErrors> 
      --> 
     <pages> 
      <controls> 
       <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
       <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      </controls> 
     </pages> 
     <httpHandlers> 
      <remove verb="*" path="*.asmx"/> 
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
     </httpHandlers> 
     <httpModules> 
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     </httpModules> 
    </system.web> 
    <system.codedom> 
     <compilers> 
      <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
       <providerOption name="CompilerVersion" value="v3.5"/> 
       <providerOption name="WarnAsError" value="false"/> 
      </compiler> 
     </compilers> 
    </system.codedom> 
    <!-- 
      Der system.webServer-Abschnitt ist zum Ausführen von ASP.NET-AJAX unter 
      Internetinformationsdienste 7.0 erforderlich. Für frühere Versionen von 
      IIS ist er nicht erforderlich. 
     --> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false"/> 
     <modules> 
      <remove name="ScriptModule"/> 
      <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     </modules> 
     <handlers> 
      <remove name="WebServiceHandlerFactory-Integrated"/> 
      <remove name="ScriptHandlerFactory"/> 
      <remove name="ScriptHandlerFactoryAppServices"/> 
      <remove name="ScriptResource"/> 
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     </handlers> 
    </system.webServer> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/> 
       <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/> 
       <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
      </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
</configuration> 
+0

Si prega di inviare il vostro web.config in modo che possiamo aiutarvi. Questo errore è molto probabilmente dovuto a un errore di configurazione. –

+0

Prova la ricerca MSDN per problemi specifici di Microsoft prima di google: http://social.msdn.microsoft.com/Search/en-US?query=ManagedPipelineHandler –

risposta

9

Va bene ... l'ho trovato. 1 di 1000 siti in Google dice: Verifica se ASP.Net in IIS 7 è installato correttamente - e: Sì, non lo era. Nel programma di installazione di Windows 7 per IIS non viene selezionato automaticamente.

+1

Felice di averlo trovato. Cordiali saluti, i primi numerosi risultati da http://social.msdn.microsoft.com/Search/en-US?query=ManagedPipelineHandler dicono la stessa cosa. –

+1

Grazie a Dio per SO. Ho avuto lo stesso identico problema e pensavo che ASP.NET fosse già installato poiché la mia app MVC funzionava correttamente! Grazie :) –

22

Un altro potenziale scenario per questo errore viene visualizzato se si installa .NET Framework 4 prima di IIS. Se è installato ASP.NET, ma è ancora ottenere questo errore, provare il seguente comando come amministratore:

\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 

Questo percorso potrebbe non essere esattamente la stessa di quella sulla vostra macchina, ma dovrebbe essere vicino.

+0

Questa è stata la causa del mio problema. Grazie – Germstorm

+0

Questo era il problema nel mio caso. Grazie :-) –

+0

Si noti che questo metodo non è supportato in Windows Server 2012 (e in seguito, presumibilmente) ti dice di utilizzare il nuovo server manager. – MGOwen

2

Gobsmacked ... non si aspettava che funzionasse, ma lo ha fatto per me.

Semplicemente corse:

\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 
+0

Grazie ha funzionato anche per me –

+0

Tre anni dopo e questa è ancora una soluzione valida: P – ernest

1

ho avuto problema simile, ma questo viene risolto facendo le seguenti:

  1. cmd Apri come amministratore

  2. Tipo: %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -I

  3. premere invio

Questo registrerà il DotNetFramework.