Aplikasi ASP.NET .NET 4.6 MVC4 memuat rakitan yang tidak perlu, mis. Sistem.Data.OracleClient . Oracle tidak digunakan.
Ketergantungan perakitan dibuat menggunakan kode di pengontrol
var sb = new StringBuilder();
foreach (Assembly b in AppDomain.CurrentDomain.GetAssemblies())
{
sb.AppendLine(b.FullName);
foreach (AssemblyName an in b.GetReferencedAssemblies())
sb.AppendLine(" " + an.Name);
}
Keluarannya ada di bawah. Menurut referensi System.Web ini ke System.Design dan System.Design referensi ke System.Data.OracleClient
Aplikasi MVC berjalan di server VPS dengan memori terbatas. Bagaimana cara memperbaikinya agar rakitan yang tidak perlu tidak dimuat? Mudah-mudahan ini akan mengosongkan sebagian memori di server VPS.
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
mscorlib
System.Drawing
System
System.Configuration
System.Core
System.Data
System.Xml
System.DirectoryServices
System.EnterpriseServices
System.Web.RegularExpressions
System.Design
System.Web.ApplicationServices
System.ComponentModel.DataAnnotations
System.DirectoryServices.Protocols
System.Security
System.Runtime.Caching
System.ServiceProcess
System.Web.Services
Microsoft.Build.Utilities.v4.0
Microsoft.Build.Framework
Microsoft.Build.Tasks.v4.0
System.Windows.Forms
System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
mscorlib
System.Configuration
System.Xml
System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
mscorlib
System
System.Xml
System.Numerics
System.Security
System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
mscorlib
System
System.Configuration
System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
mscorlib
System
System.Xml
System.Security
System.Core
System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
mscorlib
System
System.Data.SqlXml
System.Configuration
System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
mscorlib
System
System.Data
System.Configuration
Microsoft.Build.Utilities.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
mscorlib
Microsoft.Build.Framework
System
System.Xml
System.Core
...
System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
mscorlib
System.Configuration
System.Data
System.Transactions
System
System.EnterpriseServices
bagian pengikatan web.config juga tidak memuatnya:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Perbarui
Saya mencoba sesuai dengan jawaban untuk menempatkan perintah hapus ke web.config tetapi mendapat kesalahan
Juga mencoba menghapus bagian Oracle sesuai dengan jawaban yang digunakan
<configuration>
<configSections>
<section name="system.data.oracleclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<remove name="system.data.oracleclient"></remove>
</section>
</configSections>
...
tapi mendapat kesalahan:
Bagaimana memperbaikinya ?
System.Data.OracleClient
tidak boleh direferensikan dari System.Web, System.Design dan majelis serupa. Kenapa masih dimuat? Mungkin ada konfigurasi tersembunyi yang memaksanya memuat secara dinamis? - person Andrus   schedule 17.10.2016machine.config
Anda. - person hometoast   schedule 17.10.2016