Mendapatkan kesalahan 404 setelah memutakhirkan ke ASP.NET 4.5

10

Baru-baru ini saya meningkatkan aplikasi web saya ke .NET 4.5. Setelah mendorong kode ke lingkungan pengujian kami, saya mendapatkan "404 - File atau direktori tidak ditemukan." kesalahan. Kode berjalan dengan baik dari desktop VS2013 saya. Server web menjalankan IIS 7.5 pada W2K08 R2. Saya dapat melihat halaman .asp atau .htm di situs, tetapi mendapatkan kesalahan ini ketika mencoba untuk melihat halaman .aspx yang paling sederhana. Saya menduga ini masalah konfigurasi dengan web.config saya.

Jonwell
sumber
Bisakah Anda menunjukkan kepada kami web.config Anda dan bagian applicationhost.config yang terkait dengan situs web Anda?
Anthony Fornito
Sudah mencoba memposting web.config, tapi terlalu panjang. Apa yang ingin Anda lihat secara spesifik dan saya akan menyalin bagian itu.
jbonwell
Untuk membantu menemukan apa yang salah, kita perlu melihat konfigurasi, terutama bagian spesifik situs. Biasanya seluruh web.config sangat membantu. Di applicationhost.config untuk masalah Anda, wadah <site> seharusnya baik-baik saja.
Anthony Fornito
Untuk panjang? Anda harus mempostingnya di sini, menggunakan notepad ++ untuk menemukan dan mengganti \ n dengan 4 spasi di awal setiap baris stackoverflow.com/questions/11003761/notepad-add-to-every-line
Anthony Fornito
<nama situs = "PENGIRIMAN" id = "10067" serverAutoStart = "true"> <jalur aplikasi = "/ CPORT" applicationPool = "ASP.NET v4.0 Classic"> <virtualDirectory path = "/" physicalPath = "E: \ inetpub \ wwwroot \ WEB_APPS \ CPORT "/> </aplikasi> <bindings> <binding protocol =" http "bindingInformation =" 136.171.92.24:80:stage.chx.com "/> </bindings> <logFile logExtFileFlags = "Tanggal, Waktu, ClientIP, UserName, SiteName, ComputerName, ServerIP, Metode, UriStem, UriQuery, HttpStatus, Win32Status, direktori BytesSent" = "E: \ Inetpub \ SHIPPING \ Logs" /> </site>
jbonwell

Jawaban:

11

Ini 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>
Jonwell
sumber
lihat di log akses iis dan tunjukkan kami entri persis yang melemparkan Anda 404. Itu akan membantu. untuk semua kita tahu "Main.aspx" bahkan tidak di E: \ inetpub \ wwwroot \ WEB_APPS \ CPORT Apakah Anda pergi ke situs Anda / CPORT ?
Jeff W.
Inilah entri. 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, - Jika saya ubah halaman menjadi test.htm, muncul.
jbonwell
apakah test.aspx benar-benar ada pada sistem file di E: \ inetpub \ wwwroot \ WEB_APPS \ CPORT?
Jeff W.
Ya, memang ada.
jbonwell
Apakah Anda menjalankan perintah aspnet_regiis seperti yang disarankan di atas?
Jeff W.
10

Lihatlah konfigurasi yang Anda berikan jika semua file berada di tempat mereka seharusnya melakukan hal berikut.

Untuk windows Server 2008/2008 R2

Pertama, pastikan bahwa .NET Framework 4.5.1 diinstal

Jalankan perintah berikut dari prompt perintah yang ditinggikan:

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

Kemudian Buka Layanan Informasi Internet

Pilih Server di treeview kiri.

Di bagian "IIS", buka "Pembatasan ISAPI dan CGI".

Untuk semua item yang dimulai dengan "ASP.NET v4.0", klik kanan item tersebut dan pilih "Izinkan".

Anthony Fornito
sumber