JSReport: ASP. net Развертывание ядра - не удалось загрузить файл или сборку jsreport.Local - PullRequest
0 голосов
/ 04 апреля 2020

Я использую ASP. net Core 3.0, и я хотел иметь html to pdf функциональность экспорта, я нашел JSReport в качестве решения, поэтому я следовал за реализацией Jon Blaha JSReport. net SDK для экспорта html в pdf, я успешно установил нуги jsReport.Binary, jsReport.Local и jsReport.AspNetCore на моей машине для разработки. Ниже приведены установленные dll

  • jsReport.AspNetCore.dll (v2.0.2.0)
  • jsReport.Client.dll (v3.0.1.0)
  • jsReport.Local.dll (v2.2.2.0)
  • jsReport.Shared.dll (v2.1.0.0)
  • jsReport.Types.dll (v2.6.1.0)
  • jsReport.Binary.dll (v2.7.1.0)

Я следил за реализацией Jon Blaha и отлично работал на Export html to pdf на моем компьютере разработчика. Но когда я загрузил dll с опубликованным dll моего проекта, мое приложение перестало работать

произошла ошибка при запуске приложения

Я искал эту ошибку и обнаружил, что я пришлось включить регистрацию через мой web.config с помощью

stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout"

, чтобы получить реальное сообщение об ошибке после моего запуска.

После внесения необходимых изменений в мой web.config, и я получил В сгенерированном файле журнала указано:

System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'jsreport.Local, Version = 2.2.2.0, Culture = нейтральный, PublicKeyToken = null'. Системе не удается найти указанный файл.

crit: Microsoft.AspNetCore.Hosting.Diagnostics[6]
      Application startup exception
System.IO.FileNotFoundException: Could not load file or assembly 'jsreport.Local, Version=2.2.2.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
File name: 'jsreport.Local, Version=2.2.2.0, Culture=neutral, PublicKeyToken=null'
   at Technicianspk.Startup.ConfigureServices(IServiceCollection services)
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.InvokeCore(Object instance, IServiceCollection services)
   at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass9_0.<Invoke>g__Startup|0(IServiceCollection serviceCollection)
   at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.Invoke(Object instance, IServiceCollection services)
   at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass8_0.<Build>b__0(IServiceCollection services)
   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__2(IApplicationBuilder app)
   at Microsoft.AspNetCore.Server.IISIntegration.IISSetupFilter.<>c__DisplayClass4_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)

Я дважды проверил каталог wwwroot через FTP с помощью FileZilla, и у меня были все эти необходимые библиотеки jsReport на моем сервере, но я все еще не получаю файл найдено.

Я даже сравнил версии dll и убедился, что мой .csproj файл ссылается на все необходимые библиотеки jsreport, но все еще не может найти jsReport.Local.dll.

У меня есть jsReport.Local.dll на моем компьютере разработчика, а также в каталоге wwwroot моего сервера, где присутствуют все остальные библиотеки DLL, включая мои project.dll и project.views.dll и project.exe et c.

Мой cs.proj файл также имеет следующий

<ItemGroup>
 <PackageReference Include="jsreport.AspNetCore" Version="2.0.2" />
 <PackageReference Include="jsreport.Binary" Version="2.7.1" />
 <PackageReference Include="jsreport.Client" Version="3.0.1" />
 <PackageReference Include="jsreport.Local" Version="2.2.2" />
 <PackageReference Include="jsreport.Shared" Version="2.1.0" />
 <PackageReference Include="jsreport.Types" Version="2.6.1" />
</ItemGroup>

1 Ответ

0 голосов
/ 05 апреля 2020

По предложению Яна Блаха о выпуск Github .

Пожалуйста, попробуйте создать просто приложение hello world. Это работает там? Пожалуйста, загрузите где-нибудь свой проект и посмотрите, как будут выглядеть результаты развертывания.

Я попытался подготовить новое приложение asp. net core mvc 3. Ссылка на репортаж Публикуется в папке, и при запуске сервера asp.net через выходной файл exe проблем не возникает.

Я создал новое приложение hello world, сослался на jsReport, опубликовал его и загрузил на свой поддомен для тестирования. цель. и у меня есть несколько причин, по которым это не работает

  1. Возникла проблема с правами доступа к файлу на моем сервере
  2. jsReport попытался создать папку в каталоге root с именем 'jsReport', который не был создан из-за прав доступа к папке (проблемы с правами доступа к файлу)
  3. Я не загружал 2 из json файлов projectname.deps.json и projectname.runtimeconfig.json во время процесса загрузки

После внесения вышеуказанных изменений в мой основной домен сайт наконец заработал!

...