[英]Printing via ASP.NET Core-Web-Api hosted as Windows Service
我是ASP.NET Core-Web-Api 的新手,也许你对我有一些提示。 我使用ASP.NET Core 7.0 。 我将我的出版物托管为Windows 服务。 作为基础,我使用Microsoft 的天气预报演示应用程序。 我对此进行了扩展,以便我可以列出所有本地 Windows 打印机并通过另一个界面打印一个简单的字符串。
当我通过 Visual Studio 构建我的 ASP.NET Core-Web-Api 时,我可以选择在调试或发布模式下使用“ https ”或“ IIS Express ”来托管它。 通过 Swagger 我可以使用我所有的功能,即使是打印作品。
现在我将我的应用程序托管为Windows 服务,也可以通过Swagger访问该应用程序。 我可以列出我的打印机,还可以获取有关天气预报的数据。 但是我不能再打印了?
我使用以下包
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="7.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Hosting.WindowsServices" Version="7.0.2" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
</ItemGroup>
我使用 PageDocument 创建我的文档,在 Visual Studio 中工作正常,但在 Windows 服务中却不行。
PrintDocument pd = new PrintDocument();
pd.PrinterSettings.PrinterName = printer;
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
pd.Print();
对于System.Printing和System.Drawing.Printing我也看到了提示。 因此我认为这是因为我托管为 Windows 服务。
System.Printing 命名空间中的类不支持在 Windows 服务或 ASP.NET 应用程序或服务中使用。 尝试从其中一种应用程序类型中使用这些类可能会产生意想不到的问题,例如服务性能下降和运行时异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.