2012-06-23 9 views
5

LoNo se puede examinar el servicio web asp.net (.asmx) mediante un navegador después de instalarlo en IIS

He creado una muy simple servicio web utilizando asp.net NET Framework 3.5, su funcionamiento bien cuando lo probé usando la prueba de la unidad. Ahora quiero alojarlo en IIS, para eso he preparado un proyecto de configuración web para él.

Y he agregado los archivos de contenido y la salida primaria del proyecto de servicio web, después de instalar esto y probar en iis.

El problema

Cuando trato de ejecutar el servicio web usando el navegador me sale el siguiente error

Error HTTP 500.19 - Error interno del servidor La página solicitada no se puede acceder debido a que la relacionada los datos de configuración para la página no son válidos

¿Qué has probado? Traté de cambiar los permisos de seguridad de IIS_Users para permitir leer escribir todo, intenté cambiar la versión del grupo de aplicaciones, por ahora estoy intentando con la versión predeterminada de .NET framework 4.

Códigos creo que el web.config es el principal culpable, por lo tanto estoy pegando aquí ...

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

Navegador de pantalla

enter image description here

versión de IIS : IIS 7 en Windows 7

+0

Compruebe el modo de grupo de aplicaciones, ¿se está ejecutando en 'Classic' o' Integrated Mode'? –

+0

Hola, lo he intentado con ambos, muestra el mismo error para ambos. – Yasser

+0

dado que el error HTTP 500.19 es un error del servidor, por lo que puede compartir amablemente una imagen de esta página de error que muestra IIS. Además, ¿es IIS6 o 7? –

Respuesta

0

Por desgracia tuvieron que volver a instalar IIS y luego instalar el servicio web de nuevo, pero era necesario este tiempo para permitir el examen de directorios y el servicio web ahora funciona bien!

0

Consulte la línea de error de configuración en la página de error. Dado que la aplicación está utilizando WindowsAuthentication, su usuario no tiene derechos en el directorio donde se implementa la aplicación agregue lo siguiente en su configuración después de la etiqueta <authentication> para denegar usuarios anónimos.

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

y la autenticación?, ¿Debería mantenerlo tal como está (que es Windows)? – Yasser

+0

Sí, solo para usuarios AD. o puede eliminarlo todo, incluida la etiqueta ''. Pero eso hará que el servicio web también sea accesible para usuarios anónimos. –

+0

usó el código de autorización anterior y eliminó por completo la etiqueta de autenticación, obteniendo el mismo error :( – Yasser

0

Ha intentado conceder permisos para el usuario grupo de aplicaciones a la carpeta c:\inetpub\wwwroot\DiciplaAdministration

Al parecer, también podría estar relacionado con la contraseña del usuario grupo de aplicaciones, vuelva a comprobar la contraseña es siendo válida

Si esto no soluciona el problema, pruebe las siguientes respuestas:

Este artículo muestra varias situaciones en las que podría recibir este error:

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

+0

sí, es válido, otros sitios web que usan el mismo grupo de aplicaciones funcionan bien. – Yasser

0

prueba a desactivar

WSUS (Windows Server Update Services) de compresión. Puede desactivar la compresión de WSUS ejecutando el siguiente comando en el servidor

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

+0

intentado, aún el mismo problema – Yasser

Cuestiones relacionadas