Asp.NET ReportViewer :: PDF Export = System.DllNotFoundException: невозможно загрузить DLL 'T2Embed': доступ запрещен

Я использую ReportViewer на страницах asp.net на веб-хостинге.

Весь экспорт работает нормально, когда я тестирую отчет на своем локальном компьютере и в Visual Studio. После того, как я отправлю веб-приложение по FTP на удаленный веб-хост, отчет все еще будет работать, но правильно экспортируются только Excel и Word. При экспорте в PDF или Word возникает ошибка

System.DllNotFoundException: невозможно загрузить DLL "T2Embed": доступ запрещен

[DllNotFoundException: Unable to load DLL 'T2Embed': Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))]
   Microsoft.ReportingServices.Rendering.ImageRenderer.FontPackage.TTGetEmbeddingType(Win32DCSafeHandle hdc, UInt32& status) +0
   Microsoft.ReportingServices.Rendering.ImageRenderer.FontPackage.CheckEmbeddingRights(Win32DCSafeHandle hdc) +21
   Microsoft.ReportingServices.Rendering.ImageRenderer.PDFWriter.ProcessFontForFontEmbedding(PDFFont pdfFont, Dictionary`2 embeddedFonts) +462
   Microsoft.ReportingServices.Rendering.ImageRenderer.PDFWriter.EndReport() +208
   Microsoft.ReportingServices.Rendering.ImageRenderer.PDFRenderer.Render(Report report, NameValueCollection deviceInfo, Hashtable renderProperties, CreateAndRegisterStream createAndRegisterStream) +757
   Microsoft.ReportingServices.Rendering.ImageRenderer.RendererBase.Render(Report report, NameValueCollection reportServerParameters, NameValueCollection deviceInfo, NameValueCollection clientCapabilities, Hashtable& renderProperties, CreateAndRegisterStream createAndRegisterStream) +61

[LocalProcessingException: An error occurred during local report processing.]
   Microsoft.Reporting.WebForms.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, PageCountMode pageCountMode, CreateAndRegisterStream createStreamCallback, Warning[]& warnings) +167
   Microsoft.Reporting.WebForms.LocalModeSession.RenderReport(String format, Boolean allowInternalRenderers, String deviceInfo, NameValueCollection additionalParams, Boolean cacheSecondaryStreamsForHtml, String& mimeType, String& fileNameExtension) +193
   Microsoft.Reporting.WebForms.ExportOperation.PerformOperation(NameValueCollection urlQuery, HttpResponse response) +154
   Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext context) +240
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

Какие-нибудь подсказки?


person Mohsan    schedule 02.01.2014    source источник


Ответы (2)


У меня была точно такая же проблема. Я использовал ascii char (ромбовидную форму) в качестве маркеров в нижнем колонтитуле отчета. Я удалил его, и все работало нормально ...

Я думаю, что во время экспорта pdf из-за этих символов ascii компонент reportviewer пытался встроить шрифт в файл pdf ... поэтому ему нужен файл t2embed.dll. в среде общего хостинга необходимо предоставить разрешение на его использование. Я даже попытался загрузить t2embed.dll в папку bin, это тоже не сработало, и это вызвало 32-битные 64-битные проблемы ... требуется доступ к IIS для включения настроек.

Может быть старый вопрос .. Надеюсь, это кому-то поможет :)

person chris    schedule 23.12.2014
comment
почти год. попал в ту же проблему и забыл об этом сообщении, и я искал решение, в конечном итоге прочитал этот ответ. пытался проголосовать. только тогда я узнал, что это был мой собственный ответ, который спас мне день ... :) - person chris; 01.12.2015

Вы также прислали T2Embed.dll?

Попробуйте изменить права доступа t2embed.dll на «ЧИТАТЬ» для «Все».

person Fabiowin98    schedule 15.01.2014
comment
Я использую общий хостинг - person Mohsan; 16.01.2014