ASP .NET VirtualPathProvider HttpCompileException

时间:2010-09-06 04:54:04

标签: .net asp.net-mvc asp.net-mvc-2 virtualpathprovider

我有一个从数据库加载我的aspx文件内容的VirtualPathProvider。除非我的aspx文件引用了我的web.config中未明确提到的命名空间或程序集,否则所有内容似乎都很好。

解决方案似乎很容易吗?将汇编和导入指令添加到页面......但这似乎不起作用。我仍然得到以下HttpCompileException:

    c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET 
Files\app.server\70480a40\2a773b44\App_Web_test.aspx.e7cf0b6b.mzeindht.0.cs(183): error CS0234: 
The type or namespace name 'Model' does not exist in the namespace 'MyApp.Data' (are you missing an assembly reference?)

即使在我保存在DB中的test.aspx页面中,我也有:

<%@ Assembly Name="MyApp.Data" %>
<%@ Import Namespace="MyApp.Data" %>
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyApp.Data.Model.TestModel>" %>

<asp:Content ContentPlaceHolderID="MainContent" runat="server">
</asp:Content>

现在,我已经知道MyApp.Data已经加载到AppDomain中(我已经通过检查AppDomain.CurrentDomain.GetAssemblies()在运行时验证过)我知道没有失败的请求加载MyApp .Data程序集(因为我已经绑定到AppDomain.ResolveAssembly事件,并且在异常发生之前它没有正确触发)。此外,如果我将程序集目录中的名称更改为MyApp.Data123(一个虚假的名称),页面会弹出试图加载程序集。

如果我完全从页面中删除程序集指令,那么我得到命名空间无法找到类型或命名空间名称“MyApp”...所以拥有汇编指令似乎有点帮助......

知道我在这里缺少什么吗?感谢。

1 个答案:

答案 0 :(得分:0)

.NET VirtualPathProviders and Pre-Compilation

可能重复
If a Web site is precompiled for deployment, content provided by a VirtualPathProvider
instance is not compiled, and no VirtualPathProvider instances are used by the precompiled 
site.