Я унаследовал старое приложение WebSite asp.net webform, в одном из моих недавних проектов я переместил весь код из папки app_code в отдельную библиотеку. Это отлично сработало, за исключением одной страницы.
На рассматриваемой странице нет кода, а просто используется встроенный код VB.NET для выполнения некоторой работы. Код должен построить тип из новой библиотеки, которую я создал. Вместо того, чтобы искать тип в dll, он смотрит в dll App_Code, и я получаю следующее исключение:
Не удалось загрузить тип CybersourceSecurity из сборки App_Code, Version = 0.0.0.0, Culture = нейтральный, PublicKeyToken = null.
Итак, я добавил Import NameSpace и ссылку на сборку:
<%@ Assembly Name="EA.Legacy" %>
<%@ Import Namespace="EA.Legacy" %>
Тем не менее, я получаю сообщение об ошибке. Код ниже:
<%@ Page Language="VB" AutoEventWireup="false" EnableViewState="false" EnableViewStateMac="false" %>
<%@ Assembly Name="EA.Legacy" %>
<%@ Import Namespace="EA.Legacy" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head runat="server">
<title>Events and Adventures</title>
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
</head>
<body>
<form id="form1" runat="server">
<div>
<%
Dim ky As String
Dim fm As Collections.Specialized.NameValueCollection
Dim sb As New StringBuilder
Dim cybsSecurity As New EA.Legacy.CybersourceSecurity
Dim ValidSignature As Boolean = False
Try
<Do a bunch of stuff that never happens because we blow up first.>
Catch ext As Threading.ThreadAbortException
'ignore
Catch ex As Exception
eventsvb.PageError(Me, ex, "CybersourceReceipt")
Finally
sb = Nothing
cybsSecurity = Nothing
End Try
%>
</div>
</form>
</body>
</html>
Полная трассировка стека ниже:
[TypeLoadException: не удалось загрузить тип CybersourceSecurity из сборки App_Code, Version = 0.0.0.0, Culture = нейтральный, PublicKeyToken = null.] ASP.accounting_cybs_receipt_form_aspx .__ Renderform1 (HtmlTextWriter __w, Control parameterContainer.U) в SystemI Control.RenderChildrenInternal (писатель HtmlTextWriter, дочерние элементы ICollection) +131 System.Web.UI.HtmlControls.HtmlForm.RenderChildren (писатель HtmlTextWriter) +315 System.Web.UI.HtmlControls.HtmlContainerControl.Beader UI.Control.RenderChildrenInternal (средство записи HtmlTextWriter, дочерние элементы ICollection) +246 System.Web.UI.Page.Render (средство записи HtmlTextWriter) +40 System.Web.UI.Page.ProcessRequestMain (логическое значение includeStagesBeforeAsyncPointStages, +5290 Boolean includeStagesBeforeAsyncPointStages, +5290 include
[Edit] Примечание. Этот код отлично работает в VS. Я могу пройти его без исключения, это происходит только на веб-сервере.
CybersourceSecurity
из кода этой новой страницы? - person John Saunders   schedule 12.06.2014