1

我正在构建一个基于 Azure 网站的解决方案,该解决方案需要在后台定期联系服务总线中继终结点。我计划的设计方法是使用 Azure WebJob 作为此后台任务的执行引擎——我将在 App.config 中存储我的服务总线连接字符串和共享机密凭据,使用 Pkcs12ProtectedConfigurationProvider 和我的站点的自定义 SSL 证书对其进行加密,以及一切都会完美!

唯一的问题是,WebJobs 似乎无法访问其包含网站的证书。我的 WebJob 的代码可以非常简单(但请注意,App.config 的 appSettings 部分已加密):

public static void Main()
{
    string connectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"];
    Console.WriteLine(connectionString);
}

如果我在本地机器上导入站点的证书并在那里运行 WebJob 可执行文件,一切都会按预期工作。但是,当我将带有二进制文件和 .exe.config 文件的 ZIP 文件上传到 Azure 时,作业总是失败并出现以下错误。

[07/18/2014 22:53:24 > 621d84: ERR ] Unhandled Exception:
System.Configuration.ConfigurationErrorsException: Failed to decrypt using provider 'Pkcs12Provider'.
Error message from the provider: No certificate was found for thumbprint <My Certificate's Thumbprint>
(C:\DWASFiles\Sites\<My Site Name>\Temp\jobs\triggered\<My Job Name>\hzcfdtn5.f22\WebJob.exe.Config line
XX) ---> System.ApplicationException: No certificate was found for thumbprint <My Certificate's Thumbprint>

我是否正确地推测 WebJob 无法访问相应网站的证书存储?这使得几乎不可能使用 Pkcs12 提供程序来加密我的 WebJob 的秘密——有更好的选择吗?或者 WebJob 只是这个工作的错误工具?

4

1 回答 1

1

Azure 网站,AFAIK,不能使用自定义证书。

但是,您可以将连接字符串放在 Azure 门户网站的连接字符串部分。以下是有关如何阅读之后的详细信息:http: //azure.microsoft.com/blog/2013/07/17/windows-azure-web-sites-how-application-strings-and-connection-strings-work/

虽然以上不会解决加密问题,但它至少会从 AppConfig 中删除 CS。这就是我们对 Azure WebJobs SDK 的服务总线连接字符串所做的事情http://azure.microsoft.com/blog/2014/06/18/announcing-the-0-3-0-beta-preview-of-microsoft-天蓝色-webjobs-sdk/

对于您正在尝试做的事情,网络作业似乎是正确的工具。

于 2014-07-19T02:05:17.360 回答