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.


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>

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".

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.