“无法加载App_Web _ * dll”ASP.NET编译和回收后的异常
我最近遇到了以下结构的代码:
> FooService.cs 文件内容: [FooService.cs] using System.ServiceModel; namespace FooService { [ServiceContract] public class FooService { static FooEngine engine = new FooEngine(); [OperationContract] public string Foo() { return "bar"; } } public class FooEngine { } } [FooService.svc] <%@ ServiceHost Language="C#" Service="FooService.FooService" %> [Default.aspx的] <%@ Page Language="C#" %> <% var foo = "bar"; %> 我们在Windows Server 2003上使用.Net 4.0(Debug)和IIS6,使用’fooservice’Web和主机文件条目,通过http://fooservice/FooService.svc和default.aspx通过http://fooservice/调用Web服务。此时一切正常。 但是,按照以下步骤, >在default.aspx中更改代码,保存文件 对http://fooservice/FooService.svc的调用失败,并引发以下异常 [FileNotFoundException: Could not load file or assembly 'App_Web_ynlv0b1k,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark& stackMark,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks) +0 System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName,Boolean suppressSecurityChecks) +39 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,Boolean suppressSecurityChecks) +132 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString,Boolean forIntrospection) +144 System.Reflection.Assembly.Load(String assemblyString) +28 System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString,Uri[] baseAddresses) +208 System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +1440 System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +44 System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +615 [ServiceActivationException: The service '/FooService.svc' cannot be activated due to an exception during compilation. The exception message is: Could not load file or assembly 'App_Web_ynlv0b1k,PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified..] System.Runtime.AsyncResult.End(IAsyncResult result) +679246 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +190 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context,String routeServiceVirtualPath,Boolean flowContext,Boolean ensureWFService) +234 System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender,EventArgs e) +355 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously) +75 这里究竟发生了什么? 备注 >我明白ASP.NET正在编译和加载一个新的App_Web _ *。dll(在第2步),但为什么它试图加载旧的(已删除)App_Web _ *。dll在循环(3.)之后? 解决方法
我只是有同样的问题,
该应用程序是一个Web应用程序,完全预编译。 这固定它为我,但我不知道为什么: <compilation debug="false" batch="false"> 我从这里得到这个解决方案:http://web.archive.org/web/20140116171941/http://www.creative-jar.com/insights/labs/programming/could-not-load-file-or-assembly-app_web_/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |