Question Obtention d'une erreur 404 après la mise à niveau vers ASP.NET 4.5


J'ai récemment mis à niveau mon application Web vers .NET 4.5. Après avoir envoyé le code dans notre environnement de test, je reçois un "404 - Fichier ou répertoire non trouvé". Erreur. Le code fonctionne bien à partir de mon bureau VS2013. Le serveur Web exécute IIS 7.5 sur W2K08 R2. Je peux voir la page .asp ou .htm sur le site, mais obtenez cette erreur lorsque vous essayez de voir la plus simple des pages .aspx. Je soupçonne que c'est un problème de configuration avec mon web.config.


10
2017-12-02 17:45


origine


Pouvez-vous nous montrer votre web.config et la partie applicationhost.config qui concerne votre site Web? - Anthony Fornito
J'ai essayé de poster le web.config, mais c'est trop long. Qu'aimeriez-vous voir en particulier et je vais copier cette section. - jbonwell
Afin d'aider à découvrir ce qui ne va pas, nous aurons besoin de voir les configs, principalement la partie spécifique au site. En général, tout le web.config est utile. Dans le fichier applicationhost.config de votre problème, le conteneur <site> devrait convenir. - Anthony Fornito
Trop long? vous devrez le poster ici, utilisez notepad ++ pour trouver et remplacer \ n par 4 espaces au début de chaque ligne stackoverflow.com/questions/11003761/notepad-add-to-every-line - Anthony Fornito
<site name = "SHIPPING" id = "10067" serverAutoStart = "true"> <chemin de l'application = "/ CPORT" applicationPool = "ASP.NET v4.0 Classic"> <chemin de virtualDirectory = "/" physicalPath = "E: \ inetpub \ wwwroot \ WEB_APPS \ CPORT "/> </ application> <bindings> <binding protocol =" http "bindingInformation =" 136.171.92.24:80:stage.chx.com "/> </ bindings> <journal logExtFileFlags = "Date, Heure, ClientIP, Nom d'utilisateur, Nom du site, Nom de l'ordinateur, ServeurIP, Méthode, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent" répertoire = "E: \ Inetpub \ SHIPPING \ Logs" /> </ site> - jbonwell


Réponses:


Voici le 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>

11
2017-12-02 19:14



regardez dans le journal d’accès iis et montrez-nous l’entrée exacte qui vous envoie un 404. Cela vous aidera. pour tout ce que nous savons "Main.aspx" isnt même dans E: \ inetpub \ wwwroot \ WEB_APPS \ CPORT Allez-vous votre site / CPORT? - Jeff W.
Voici l'entrée. 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 je changez la page en test.htm, cela s’affiche. - jbonwell
Est-ce que test.aspx existe réellement sur le système de fichiers dans E: \ inetpub \ wwwroot \ WEB_APPS \ CPORT? - Jeff W.
Oui, ça existe. - jbonwell
Avez-vous exécuté la commande aspnet_regiis comme suggéré ci-dessus? - Jeff W.


Regardez la configuration que vous avez fournie si tous les fichiers sont où ils sont supposés être, procédez comme suit.

Pour Windows Server 2008/2008 R2

D'abord, assurez-vous que le .NET Framework 4.5.1 est installé

Exécutez la commande suivante à partir d'une invite de commande avec privilèges élevés:

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

Puis ouvrez Internet Information Services

Sélectionnez le serveur dans l'arborescence de gauche.

Dans la section "IIS", ouvrez "Restrictions ISAPI et CGI".

Pour tous les éléments commençant par "ASP.NET v4.0", cliquez avec le bouton droit de la souris sur l'élément et sélectionnez "Autoriser".


10
2017-12-02 18:58