Как и в любой среде фермы, вы должны учитывать сохранение файлов в хранилище, которое является общим для всех машин в ферме.В Windows Azure таким общим хранилищем является Windows Azure Blob Storage .
Вы должны внести некоторые изменения в свое приложение, чтобы оно сохраняло файлы в виде Blob.Если это общедоступные файлы, вы просто помечаете контейнер BLOB-объектов как общедоступный и предоставляете полный URL-адрес файла в BLOB-объекте для средства просмотра PDF.
Если ваши файлы PDF являются частными, вы должны пометить свой контейнер какчастный.Вторым шагом является создание URL-адреса подписи общего доступа для PDF-файла и предоставление этого URL-адреса для средства просмотра PDF.
Кроме того, во время разработки вы можете исследовать свое хранилище Azure с помощью любого (свободно)и не так свободно) доступны инструменты для Windows Azure Storage.Вот некоторые из них:
Естьмного примеров, как загрузить файл в хранилище Azure.Просто найдите его с вашей любимой поисковой системой.Проверьте эти ресурсы:
Надеюсь, это поможет!
ОБНОВЛЕНИЕ (после обновления вопроса)
Проблема в том, что после создания файла на определенной виртуальной машине я задаю для средства просмотра PDF URL средства просмотра PDF как «http: //..../file.pdf».Это сгенерирует новый запрос, которым я не могу управлять, и я не могу знать, какая виртуальная машина будет работать на сервере, поэтому даже если я сохраню файл в BLOB, он не решит
Попробуйте немного изменить свою логику, иследуй моим инструкциям.Когда ваша виртуальная машина создаст PDF, загрузите файл в BLOB-объект.Затем передайте полный URL-адрес блоба для вашего файла PDF в программу просмотра PDF.Таким образом, запрос будет отправляться не на любую виртуальную машину, а только на большой двоичный объект.И полный URL-адрес блоба будет примерно таким: http://youraccount.blob.core.windows.net/public_files/file.pdf
Или я что-то упустил?Насколько я понимаю, ваш процесс выполняется следующим образом:
- Пользователь делает специальный запрос, который может привести к генерации файла PDF
- Файл генерируется на сервере
- fullURL-адрес файла отправляется обратно клиенту, чтобы клиентская программа просмотра PDF могла отобразить его
Если это поток, то с предлагаемыми изменениями будет выглядеть следующим образом:
- Пользователь делает специальный запрос, который может привести к генерации файла PDF
- Файл генерируется на сервере
- Файл загружается в хранилище больших двоичных объектов
- Полный URL-адрес файлав BLOB возвращается обратно клиенту, так что он может быть отображен на клиенте.
Что не ясно?Или что отличается в вашем процессе?То же самое я делаю для генерации отчетов на лету, и это работает довольно хорошо.Единственное отличие состоит в том, что мое приложение основано на Silverlight, и я принудительно загружаю файлы вместо встроенного отображения.