Классический 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 для них обоих - это единственный способ памяти, о котором я могу думать.

Другие вопросы по тегам