是否可以从Azure辅助角色打印.NET代码

时间:2015-10-07 14:59:16

标签: c# azure pdf

首先,我知道seems to ask the same thing这个问题。但是我会稍微修改一下再问一次。

我正在开展一个打印PDF的项目。我们有一个PDF操作库。我们可以使用它将PDF呈现为 System.Drawing.Printing.PrintDocument 对象可以使用的文件,并在c#中打印。我们将拥有一个Azure Worker角色,需要多个1页的pdf,并将它们转换成一个大的pdf,我想有另一个Azure Worker Role,然后将这个大型PDF文件转换为Windows打印服务器本地。

由于打印部分速度慢得多(与pdf创建/聚合部分相比),我希望能够将其托管在天蓝色中以便轻松扩展。

我最初的想法是"我不认为这甚至是可能的。 Azure如何能够了解我本地打印服务器的任何信息。"这是上述类似问题的基本答案。但经过一些搜索,我发现一些结果似乎表明设置VPN站点到站点隧道或ExpressRoute连接将让我做我想要的。但是,我对Azure相对较新,而且我发现的结果是实际的,有用的,有用的细节。

如果无法完成,我可以在本地设置应用服务器进行打印。但如果有人对如何实现这一点有想法或更多的见解,我很乐意听到它。

2 个答案:

答案 0 :(得分:2)

基本上,您可以将PDF存储到Azure Blob Storage中,如:

http://azureaccount.blob.core.windows.net/PDF/pdf1.pdf

然后定义Azure Queue实体,如:

  

MyQueue(Pdf_Id,Pdf_Blob_Url)

MyQueue(1, http://azureaccount.blob.core.windows.net/PDF/pdf1.pdf) 
MyQueue(2, http://azureaccount.blob.core.windows.net/PDF/pdf2.pdf)

并提交至Azure Queue

然后在您的打印服务器上,只需设置一个应用程序以检查AzureQueue以处理PDF。此时,只需直接从Azure blob存储URL获取PDF,即可进行任何您想要的合并,打印等....

答案 1 :(得分:1)

不进入VPN /站点到站点设置,这是一个想法:

您可以在网络上托管一个小型应用程序,该应用程序使用服务总线中继来公开WCF服务(这将允许来自该角色的服务的传入连接)

辅助角色可以使用此服务,然后发送PDF以进行打印。

您的应用会通过您提到的PrintDocument对象将PDF发送到打印机。

请参阅:

https://azure.microsoft.com/en-gb/documentation/articles/service-bus-dotnet-how-to-use-relay/

  

什么是服务总线中继?服务总线中继服务启用   您可以构建在Azure数据中心中运行的混合应用程序   和您自己的本地企业环境。服务总线继电器   通过使您能够安全地公开Windows来促进这一点   驻留在公司内的Communication Foundation(WCF)服务   企业网络到公共云,无需打开   防火墙连接,或要求对公司进行侵入式更改   网络基础设施。