2009-10-04 21 views
12

मैंने अभी अपनी पहली वेब सेवा बनाई है।वेब सेवा समस्या Asp.Net

मैं का उपयोग करें:

  • IIS 7.5
  • वी.एस. 2008
  • नेट 3,5

के बाद मेरी आईआईएस स्थापित करने और IE में मेरी ASMX फ़ाइल मैं त्रुटि पालन पाने के लिए ब्राउज़ करें:

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

मैंने इसे 2 घंटे से गुगल किया लेकिन समाधान नहीं मिला।

मेरे कॉन्फ़िग यहाँ है:

<?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

कृपया अपना वेब.कॉन्फिग पोस्ट करें ताकि हम आपकी मदद कर सकें। कॉन्फ़िगरेशन त्रुटि के कारण यह त्रुटि सबसे अधिक संभावना है। –

+0

Google से पहले माइक्रोसॉफ्ट-विशिष्ट मुद्दों के लिए एमएसडीएन खोज का प्रयास करें: http://social.msdn.microsoft.com/Search/en-US?query=ManagedPipeline हैंडलर –

उत्तर

9

ठीक है ... यह पाया। Google में 1000 साइटों में से 1 कहता है: जांचें कि आईआईएस 7 में एएसपी.Net सही तरीके से स्थापित है या नहीं: और हाँ, यह नहीं था। आईआईएस के लिए विंडोज 7 इंस्टॉलर में यह स्वचालित रूप से नहीं चुना जाता है।

+1

खुशी है कि आपको यह मिला। एफवाईआई, http://social.msdn.microsoft.com/Search/en-US?query=ManagedPipeline हैंडलर के पहले कई परिणाम एक ही बात कहते हैं। –

+1

एसओ के लिए भगवान का शुक्र है। मेरे पास एक ही समस्या थी और मैंने सोचा था कि एएसपी.नेट पहले ही स्थापित है क्योंकि मेरे एमवीसी ऐप ने ठीक काम किया है! धन्यवाद :) –

22

यदि आप आईआईएस से पहले .NET 4 ढांचे को स्थापित करते हैं तो इस त्रुटि के लिए एक और संभावित परिदृश्य प्रकट होता है। ASP.NET स्थापित है, लेकिन आप अभी इस त्रुटि मिलती है, एक प्रशासक के रूप निम्न आदेश का प्रयास करें:

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

उस पथ आपकी मशीन पर एक के रूप में बिल्कुल एक ही नहीं हो सकता है, लेकिन यह करीब होना चाहिए।

+0

यह मेरी समस्या का कारण था। धन्यवाद – Germstorm

+0

यह मेरे मामले में समस्या थी। धन्यवाद :-) –

+0

ध्यान दें कि यह विधि विंडोज सर्वर 2012 (और बाद में, अनुमानतः) में समर्थित नहीं है, यह आपको नए सर्वर मैनेजर का उपयोग करने के लिए कहती है। – MGOwen

2

गोब्समेकड ... यह काम करने की उम्मीद नहीं करता था लेकिन यह मेरे लिए किया गया था।

सीधे शब्दों में भाग गया:

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

धन्यवाद यह मेरे लिए भी काम करता है –

+0

तीन साल बाद और यह अभी भी एक वैध समाधान है: पी – ernest

1

मैं वही समस्या थी, लेकिन यह निम्न कार्य करके हल हो गई है: %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -I

  • : व्यवस्थापक

  • प्रकार के रूप में

    1. ओपन cmd

      एंटर दबाएं

    यह DotNetFramework पंजीकृत करेगा।

  • संबंधित मुद्दे