2012-06-23 8 views
5

CosaImpossibile esplorare il servizio di asp.net web (.asmx) utilizzando un browser dopo l'installazione su IIS

Ho creato un semplice servizio di asp.net web utilizzando il framework .NET 3.5, la sua esecuzione bene quando l'ho provato usando il test dell'unità. Ora voglio ospitarla su IIS, per questo ho preparato un progetto di installazione web per questo.

E hanno aggiunto i file di contenuto e l'output primario del progetto del servizio Web, dopo averlo installato e verificato su iis.

Il problema

Quando provo a fare funzionare il webservice utilizzando il browser ottengo il seguente errore

HTTP Error 500.19 - Internal Server Error La pagina richiesta non può essere accessibile a causa della relativa i dati di configurazione per la pagina non sono validi.

Cosa ho provato? Ho provato a modificare i permessi di sicurezza di IIS_Users per consentire di leggere scrivere tutto, provato a cambiare la versione del pool di applicazioni, per ora sto provando con la versione .NET Framework 4 predefinita.

Codici Credo che il web.config è il principale colpevole di conseguenza sto incollando qui ...

<?xml version="1.0"?> 
    <configuration> 

    <connectionStrings> 
    <add name="cString" connectionString ="Data Source=VRAKSH-YASSER;Initial Catalog=uGraphDB;Persist Security Info=True;User ID=sa;Password=data#123;MultipleActiveResultSets=True" /> 
    </connectionStrings>  

    <!--<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/>--> 
    <system.web> 

     <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> 
    <!-- 
     The <authentication> section enables configuration 
     of the security authentication mode used by 
     ASP.NET to identify an incoming user. 
    --> 
    <authentication mode="Windows" /> 
    <!-- 
     The <customErrors> section enables configuration 
     of what to do if/when an unhandled error occurs 
     during the execution of a request. Specifically, 
     it enables developers to configure html error pages 
     to be displayed in place of a error stack trace. 

     <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> 
    <!-- 
     The system.webServer section is required for running ASP.NET AJAX under Internet 
     Information Services 7.0. It is not necessary for previous version of IIS. 
    --> 
    <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 appliesTo="v2.0.50727" 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> 

Browser Schermata

enter image description here

IIS versione : IIS 7 su windows 7

+0

Controllare la modalità del pool di applicazioni, è in esecuzione in 'Classic' o' Modalità integrata'? –

+0

Ciao, ho provato entrambi, mostra lo stesso errore per entrambi. – Yasser

+0

poiché l'errore HTTP 500.19 è un errore del server, quindi puoi gentilmente condividere un'immagine di questa pagina di errore che sta visualizzando IIS. Addizionalmente è IIS6 o 7? –

risposta

0

Purtroppo dovuto reinstallare IIS e quindi installare nuovamente il servizio web, ma questa volta mi è stato richiesto per consentire l'esplorazione delle directory e il webservice ora funziona bene!

0

Vedere la riga di errore di configurazione nella pagina di errore. L'applicazione utilizza WindowsAuthentication, l'utente non dispone di diritti sulla directory in cui è distribuita l'applicazione aggiungere i seguenti nella tag di configurazione subito dopo <authentication>, per negare agli utenti anonimi.

<authorization> 
    <deny users="?" /> 
    <allow users ="*" /> 
    </authorization> 
+0

e autenticazione?, Dovrei tenerlo così com'è (che è Windows)? – Yasser

+0

Sì, se è accessibile solo agli utenti di Active Directory. oppure puoi rimuoverlo tutti insieme incluso il tag ''. Ma ciò renderà il servizio web accessibile anche agli utenti anonimi. –

+0

ha utilizzato il suddetto codice di autorizzazione e ha rimosso completamente il tag di autenticazione, ottenendo sempre lo stesso errore :( – Yasser

0

Hai provato a concedere le autorizzazioni all'utente App Pool alla c:\inetpub\wwwroot\DiciplaAdministration cartella

Apparentemente potrebbe anche essere in relazione con la password dell'utente App Pool, controlla accuratamente la password è ancora valido

Se ciò non risolve il problema, provare le seguenti risposte:

Questo articolo mostra diverse situazioni in cui è possibile ricevere questo errore:

http://blogs.msdn.com/b/webtopics/archive/2010/03/08/troubleshooting-http-500-19-errors-in-iis-7.aspx

+0

Sì, è valido, altri siti Web che utilizzano lo stesso pool di applicazioni funzionano bene. – Yasser

0

provare a disabilitare

WSUS (Windows Server Update Services) di compressione. È possibile disattivare la compressione WSUS eseguendo il seguente comando sul server

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /-[name='xpress']

+0

provato, ancora lo stesso problema – Yasser

Problemi correlati