On my ongoing saga to mirror the hosting of a legacy app on a clean box, I've hit my next snag. One page relies on a big .NET UserControl that on the new machine renders only as a big, greyed out textarea (greyed out vertical scrollbar on the right hand edge. Inspecting the source shows the expected object
tag.)
This is particularly tricky because nobody seems to know much about hosted UserControls and all the discussions data back to 2002-2004.
The page is quite simple:
<%@ 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>
The config file referenced:
<?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>
What I've checked:
- Security permissions should be OK, the site is trusted and adding a URL exception to grant FullTrust doesn't change anything.
- Config file is acessible over the web, layout.xml is accessible, ASMX shows the expected command list
- Machine.config grants GET permission for the usercontrol.config file.
What perhaps looks fishy to me:
- The DataExport UserControl references Aspose.Excel to generate the spreadsheets it exports.
- When I navigate to the page and get a blank textbox, then run
gacutil /ldl
, nothing is in the local download cache. On the working machine, running the same command after viewing the page shows a laundry list of DLLs including the control DLL and the Aspose DLL.