В моей продолжающейся саге о том, чтобы отразить хостинг устаревшего приложения на чистой коробке, я столкнулся со своей следующей загадкой. Одна страница опирается на большой .NET UserControl, который на новой машине отображается только в виде большой серой текстовой области (серая вертикальная полоса прокрутки на правом краю. Проверка источника показывает ожидаемый тег object
.)
Это особенно сложно, потому что, кажется, никто не знает много о размещенных элементах управления пользователя и всех данных обсуждений за 2002-2004 годы.
Страница довольно проста:
<%@ Page language="c#" Codebehind="DataExport.aspx.cs" AutoEventWireup="false" Inherits="yyyyy.Web.DataExport" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>DataExport</title>
<link rel="Configuration" href="/xxxxx/yyyyy/DataExport.config">
</head>
<body style="margin:0px;padding:0px;overflow:hidden">
<OBJECT id="DataExport" style="WIDTH: 100%; HEIGHT: 100%; position:absolute; left: 0px; top:0px"
classid="yyyyy.Common.dll#yyyyy.Controls.DataExport"
VIEWASTEXT>
</OBJECT>
</body>
</html>
Ссылка на файл конфигурации:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="yyyyy">
<section name="dataExport" type="yyyyy.Controls.DataExportSectionHandler,yyyyy.Common" />
</sectionGroup>
</configSections>
<yyyyy>
<dataExport>
<layoutFile>http://vm2/xxxxx/yyyyy/layout.xml</layoutFile>
<webServiceUrl>http://vm2/xxxxx/yyyyy/services/yyyyy.asmx</webServiceUrl>
</dataExport>
</yyyyy>
</configuration>
Что я проверил:
- Разрешения безопасности должны быть в порядке, сайт является доверенным, и добавление исключения URL для предоставления FullTrust ничего не меняет.
- Файл конфигурации доступен через Интернет, layout.xml доступен, ASMX показывает список ожидаемых команд
- Machine.config предоставляет разрешение GET для файла usercontrol.config.
Что может показаться мне подозрительным:
- DataExport UserControl ссылается на Aspose.Excel для создания экспортируемых электронных таблиц.
- Когда я перехожу на страницу и получаю пустое текстовое поле, а затем запускаю
gacutil /ldl
, в локальном кэше загрузки ничего нет. На работающей машине, после выполнения этой же команды после просмотра этой страницы, отобразится подробный список библиотек DLL, включая управляющую DLL и библиотеку Aspose.