添加在 GAC 中组装所需的组装(在 Web.Config 中)

Add Assembly (in Web.Config) required for assembly in GAC

请看下面的代码(Image Hander):

<%@ WebHandler Language="VB" Class="com.Genie.PresentationLayer.Web.ImageHandler1" %>
Imports com.Genie.BusinessLogicLayer

Namespace com.Genie.PresentationLayer.Web
    Public Class ImageHandler1
        Inherits ImageHandler
        Private p1 as Person    
        Public Sub New()

        End Sub
end class
end namespace

com.Genie.BusinessLogicLayer 今天已添加到 GAC。应用程序在到达图像处理程序时产生运行时错误:'Type Person is not defined'。按如下方式将程序集添加到 web.config 可解决问题:

<assemblies>
        <add assembly="BusinessLogicLayer, Version=1.0.0.0, Culture=neutral, PublicKeyToken="669e0ddf0bb1aa2a"/>
</assemblies>

为什么我要修改web.config?我认为 'Add Assembly' 适用于不使用 MSBuild 的网站项目(因此没有 'References')。这是一个网络应用程序项目。

您添加到项目的引用在项目编译时使用,但 ASPX 页面或 ASHX 处理程序在首次请求时编译。此时参考文献丢失,需要您自行提供。

备选方案是 precompiling your ASPX pages,导致在编译时而非运行时捕获错误,或者将代码移至代码隐藏以便使用您的项目引用。