添加在 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,导致在编译时而非运行时捕获错误,或者将代码移至代码隐藏以便使用您的项目引用。
请看下面的代码(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,导致在编译时而非运行时捕获错误,或者将代码移至代码隐藏以便使用您的项目引用。