Я получаю ошибку EventLog, которая мне неизвестна при запуске веб-приложения .NET.
Приложение в основном читает из базы данных, а затем с диска (читает размеры файлов и затем записывает обратно вбазы данных).
У меня без проблем работает приложение на моей рабочей станции (IISExpress) и другом сервере (Windows 2008 с IIS7)
Но когда я запускаю егонаш 2003 R2 сервер с IIS6 я получаю странное поведение.Приложение IIS запускается и не сообщает ничего плохого, но когда я пытаюсь получить доступ к веб-странице, я получаю «Серверное приложение недоступно», и EventLog на сервере дает мне этот дамп:
Event Type: Error
Event Source: ASP.NET 4.0.30319.0
Event Category: None
Event ID: 1325
Date: 24.05.2011
Time: 13:29:11
User: N/A
Description:
Failed to initialize the AppDomain:/LM/W3SVC/1309226359/Root
Exception: System.IO.FileLoadException
Message: Could not load file or assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Access is denied.
StackTrace: at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(String assemblyName, String typeName)
at System.AppDomain.CreateInstance(String assemblyName, String typeName)
at System.AppDomain.InternalCreateInstanceWithNoSecurity(String assemblyName, String typeName)
at System.AppDomain.InternalCreateInstanceWithNoSecurity(String assemblyName, String typeName)
at System.Activator.CreateInstance(AppDomain domain, String assemblyName, String typeName)
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)
Приложение продолжает работатьв IIS.Этот IIS также размещает целый ряд других сайтов без каких-либо проблем.И да, приложение настроено для работы в .NET 4, и на сервере также без проблем размещаются другие приложения .NET 4.
Насколько я могу судить, оно не может загрузить System.Web.сборка, но я не уверен, как это вообще возможно ...
Вот web.config для приложения:
<?xml version="1.0"?>
<configuration>
<system.web>
<globalization culture="nb-NO"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<customErrors mode="Off"></customErrors>
<xhtmlConformance mode="Strict"/>
<httpRuntime requestValidationMode="2.0"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"></modules>
</system.webServer>
</configuration>