Obteniendo un error 404 después de actualizar a ASP.NET 4.5

10

Recientemente actualicé mi aplicación web a .NET 4.5. Después de enviar el código a nuestro entorno de prueba, aparece un "404 - Archivo o directorio no encontrado". error. El código funciona bien desde mi escritorio VS2013. El servidor web ejecuta IIS 7.5 en W2K08 R2. Puedo ver la página .asp o .htm en el sitio, pero obtengo este error cuando intento ver la más simple de las páginas .aspx. Sospecho que es un problema de configuración con mi web.config.

jbonwell
fuente
¿Puede mostrarnos su porción web.config y applicationhost.config que se relaciona con su sitio web?
Anthony Fornito
Intenté publicar el web.config, pero es demasiado largo. ¿Qué le gustaría ver específicamente y copiaré esa sección?
jbonwell
Para ayudar a descubrir qué está mal, necesitaríamos ver las configuraciones, principalmente la parte específica del sitio. Por lo general, todo el web.config es útil. En applicationhost.config para su problema, el contenedor <site> debería estar bien.
Anthony Fornito
A largo? tendrá que publicarlo aquí, use notepad ++ para buscar y reemplazar \ n con 4 espacios al comienzo de cada línea stackoverflow.com/questions/11003761/notepad-add-to-every-line
Anthony Fornito
<site name = "SHIPPING" id = "10067" serverAutoStart = "true"> <application path = "/ CPORT" applicationPool = "ASP.NET v4.0 Classic"> <virtualDirectory path = "/" physicalPath = "E: \ inetpub \ wwwroot \ WEB_APPS \ CPORT "/> </application> <bindings> <binding protocol =" http "bindingInformation =" 136.171.92.24:80:stage.chx.com "/> </bindings> <logFile logExtFileFlags = "Fecha, hora, ClientIP, nombre de usuario, nombre del sitio, nombre del equipo, IP del servidor, método, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent" directorio = "E: \ Inetpub \ SHIPPING \ Logs" /> </site>
jbonwell

Respuestas:

11

Aquí está el web.config. http://go.microsoft.com/fwlink/?LinkId=235367.

The following attributes can be set on the <httpRuntime> tag.
  <system.Web>
    <httpRuntime targetFramework="4.5.2" />
  </system.Web>
  -->
  <system.web>
    <httpRuntime requestValidationMode="4.0" enableHeaderChecking="false" encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    <httpCookies httpOnlyCookies="true"/>
    <compilation debug="true" strict="false" explicit="true">
      <assemblies>
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Drawing.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
</compilation>
<trace enabled="false" pageOutput="false"/>
<pages theme="Apps" enableEventValidation="true" validateRequest="true" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
  <namespaces>
    <clear/>
    <add namespace="System"/>
    <add namespace="System.Collections"/>
    <add namespace="System.Collections.Generic"/>
    <add namespace="System.Collections.Specialized"/>
    <add namespace="System.Configuration"/>
    <add namespace="System.Text"/>
    <add namespace="System.Text.RegularExpressions"/>
    <add namespace="System.Linq"/>
    <add namespace="System.Web"/>
    <add namespace="System.Web.Caching"/>
    <add namespace="System.Web.SessionState"/>
    <add namespace="System.Web.Security"/>
    <add namespace="System.Web.Profile"/>
    <add namespace="System.Web.UI"/>
    <add namespace="System.Web.UI.WebControls"/>
    <add namespace="System.Web.UI.WebControls.WebParts"/>
    <add namespace="System.Web.UI.HtmlControls"/>
  </namespaces>
  <controls>
    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add tagPrefix="Ipls" assembly="cvx.Ipls.Web" namespace="cvx.Ipls.Web.UI.Controls"/>
    <add tagPrefix="telerik" namespace="Telerik.Web.UI" assembly="Telerik.Web.UI"/>
    <add tagPrefix="ccc" namespace="CSC.Web.Common.Controls" assembly="CSC.Web.Common.Controls35"/>
  </controls>
</pages>
<sessionState mode="InProc" timeout="60"/>
<httpHandlers>
  <add path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" validate="false"/>
  <add path="*_AppService.axd" verb="*" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  <add path="ScriptResource.axd" verb="GET,HEAD"  type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" /> 
</httpHandlers>
<httpModules>
  <add name="ErrorModule" type="CSC.Web.Common.Errors.ErrorModule"/>
  <add name="securityModule" type="CSC.Web.Common.Security.securityModule"/>
  <add name="RadCompression" type="Telerik.Web.UI.RadCompression"/>
</httpModules>
<identity impersonate="false"/>
  </system.web>
     <!-- 
    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>
  <add name="ErrorModule" type="CSC.Web.Common.Errors.ErrorModule"/>
  <add name="securityModule" type="CSC.Web.Common.Security.securityModule"/>
  <add name="RadCompression" type="Telerik.Web.UI.RadCompression"/>
</modules>
<handlers>
  <add name="Telerik.Web.UI.WebResource.axd_*" path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" preCondition="integratedMode"/>
  <add name="ScriptResource.axd_GET,HEAD" path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode"/>
  <add name="*_AppService.axd_*" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode"/>
  <add name="*.asmx_*" path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode"/>
</handlers>
<httpErrors errorMode="DetailedLocalOnly"/>
<defaultDocument>
  <files>
    <add value="Main.aspx"/>
  </files>
</defaultDocument>
 </system.webServer>
 <runtime>
 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <!--<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>
<location path="Telerik.Web.UI.WebResource.axd">
  <system.web>
    <authorization>
        <allow users="*"/>
    </authorization>
  </system.web>
</location>
<system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_ITwoWayAsync">
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows"/>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="http://servername.com/InformationService/MasterDataService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ITwoWayAsync" contract="MasterData.MasterDataService" name="BasicHttpBinding_ITwoWayAsync"/>
</client>
</system.serviceModel>
</configuration>
jbonwell
fuente
mire en el registro de acceso de iis y muéstrenos la entrada exacta que le arroja un 404. Eso ayudará. por lo que sabemos "Main.aspx" no está incluso en E: \ inetpub \ wwwroot \ WEB_APPS \ CPORT ¿Vas a tu sitio / CPORT ?
Jeff
Aquí está la entrada. 146.27.228.73, CT \ jbpj, 12/2/2016, 13:39:12, W3SVC10067, HOU150W8AHV1590, 136.171.92.24, 280, 779, 1498, 404, 1260, GET, /cport/test.aspx, - Si yo cambie la página a test.htm, aparece.
jbonwell
¿Test.aspx realmente existe en el sistema de archivos en E: \ inetpub \ wwwroot \ WEB_APPS \ CPORT?
Jeff
Sí, existe
jbonwell
¿Ejecutó el comando aspnet_regiis como se sugirió anteriormente?
Jeff
10

Mire la configuración que proporcionó si todos los archivos están donde se supone que deben hacer lo siguiente.

Para Windows Server 2008/2008 R2

Primero asegúrese de que .NET Framework 4.5.1 esté instalado

Ejecute el siguiente comando desde un símbolo del sistema elevado:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

Luego abra los servicios de información de Internet

Seleccione el servidor en la vista de árbol izquierda.

En la sección "IIS", abra "Restricciones ISAPI y CGI".

Para todos los elementos que comienzan con "ASP.NET v4.0", haga clic con el botón derecho en el elemento y seleccione "Permitir".

Anthony Fornito
fuente