Классический ASP: размещение содержимого PDF-файла на странице.NET
Так что проблема в том, что половина приложения написана на классическом asp, а половина на asp.net. Там есть PDF-файл (в памяти), который генерируется классическим asp-кодом, и мне нужно поделиться с половиной.NET. Я думал о сохранении PDF в FS или DB, что, я уверен, большинство из вас не порекомендует, потому что для этого потребуется очень медленный процесс сохранения в IO, а затем мне нужно будет выполнить очистку вручную после - излишне создавать больше узких мест и точек отказа.
Я думал о том, чтобы имитировать публикацию с классической страницы asp в.NET с помощью объектов Server.Transfer или Microsoft.XMLHTTP, но ни один из них не совсем подходит для сценария, поскольку я действительно хочу, чтобы URL-адрес на стороне клиента указывал на ASP. стр. Так есть ли простой способ изготовления POST из классического ASP на страницу.NET со встроенным PDF-файлом?
Заранее спасибо за любые комментарии или предложения.
3 ответа
Что-то вроде хака, но...
Создайте форму в классическом ASP с полем, которое вы заполняете данными из файла PDF. Действие формы будет страницей ASP.NET. Что-то вроде:
<body onload="pdfsenderform.submit()">
<form name="pdfsenderform" action="pdf.aspx" method="post">
<input type="hidden" name="pdffiledata" value="<%...output your PDF data here...%>" />
</form>
</body>
Возможно, вам придется кодировать двоичные данные PDF перед записью их в поле формы (Base64 или что-то).
Ваш лучший выбор, вероятно, FS или DB, учитывая трудности взаимодействия ASP.NET и ASP. Это мой "путь наименьшего сопротивления".
Просто запишите его на диск, сохраните имя файла в файле cookie или строке запроса и откройте Response.Radirect для пользователя. Скорее всего, это будет "достаточно быстро" и намного проще, чем написать наименьший общий знаменатель State Server, доступный через TCP для них обоих - это единственный способ памяти, о котором я могу думать.