我有一个使用“发布网站”发布的VS 2005网站,并清除了所有三个复选框。我也有一个部署项目,可以获取发布的文件并创建一个MSI。然后我将该软件包安装在单独的测试服务器上。如何解决ASP.NET错误“文件'nnn.aspx'未被预编译,无法请求。”?
换句话说,整个网站是预编译的。然而,当我去到一个名为“服务”的具体子文件夹的任何.aspx文件,我得到一个HttpException:
System.Web.HttpException:文件“/myapp/Services/mypage.aspx”还没有已经被预编译,并且不能被请求。
如果我转到其他文件夹中的.aspx文件,无论是根文件夹还是其他子文件夹,它都可以正常工作。
mypage.aspx本身的内容是:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="mypage.aspx.cs" Inherits="Services_mypage" %>"
在/myapp/bin
文件夹,我可以看到一个mypage.aspx.989dc2fb.compiled
文件。这个内容似乎指向一个特定的程序集,它也存在于bin文件夹中。
为什么会发生此错误? .compiled文件在那里,程序集在那里,问题中的类型出现在该程序集中(我可以在对象浏览器中看到它)。是否有关.compiled文件的名称或内容?不知何故,我有错版吗? .compiled文件名中的表面上的随机数是什么意思,它是重要的?
我也想提一提,这个问题突然出现,我不知道什么样的变化有可能因为前几天正常工作已经完成(但据我所知,没有的)。
+1为缺少的程序集提示(在我的情况下,一些程序集已从GAC中删除) – 2010-09-07 08:18:39
+1也提示我。原来我们有一个缺失的控制组件。 – 2012-06-19 09:50:35
对我而言略有不同,但同样的dll主题。我有一个项目A,它生成了一个dll,其中包含一些在项目B中使用的预编译的用户控件。这两个项目都使用Telerik RadControls,但使用了不同的版本。项目B中未使用A控件的页面发挥作用,这些页面提供了有关版本不匹配的适当消息。然后B中的.asmx服务给了非预先编译的消息非常无益的帮助。同步版本修复了这一切。 – Piwaf 2012-12-21 18:22:17