簡體   English   中英

如何從Azure WebJob讀取站點的web.config文件?

[英]How to read site's web.config file from Azure WebJob?

我使用自定義web.config配置元素為我的ASP.NET MVC應用程序配置復雜的應用程序服務。 我在Azure WebJob中需要這個配置數據,它與Web應用程序一起部署。 我試圖避免將這些部分從網站的web.config復制到webjob的app.config文件。

因此,除了連接字符串和應用程序設置之外,Azure WebJob還有一種方法可以讀取網站的web.config文件嗎?

理想情況下,我想使用ConfigurationManager.GetSection來創建我的自定義ConfigurationSection實例。

大多數Web應用程序+ Web作業都具有您在配置文件中不需要的敏感設置。 您可以使用ARM / PS部署這些機密,請參閱將機密部署到Azure 所以只需將所有設置添加到ARM / PS腳本中即可。

Azure App設置適用於Web作業和Web應用程序,這是推薦的方法。

這是構建時間的解決方案。 可能這個示例Msbuild腳本會將web.config中的peeked xml元素插入到另一個xml文件中。 請注意,它未經過測試。

<ItemGroup>
    <PublishPackages > 
        <WebConfigXml>
            $(YourProjectPath)web.config
        </WebConfigXml>
        <WebJobConfig>
            $(YourWebJobPath)app.config
        </WebJobConfig>
    </PublishPackages>
</ItemGroup>
<Target Name="InjectConfigs">
    <XmlPeek 
        XmlInputPath="%(PublishPackages.WebConfigXml)" 
        Query="//parent/someelement">
        <Output TaskParameter="Result" ItemName="Peeked" />
    </XmlPeek>
    <XmlPoke 
        XmlInputPath="%(PublishPackages.WebJobConfig)"
        Query="//parent/someelement"
        Value="$(Peeked)"
        Condition =" '$(Peeked)'!=''" 
        />
</Target>
</Project>

這些文檔可以提供幫助: 為Web包部署配置參數XmlPeek任務如果XmlPoke和XmlPeek不采取另一種方式,那就是使用XmlFile任務 希望能幫助到你!

UPDATE。 更改為僅使用XmlPeek和XmlPook而不使用XmlFile。

這是安裝時間的解決方案。 有一種稱為Web Deploy的技術允許創建可以從命令行和安裝服務運行的包。 它允許使用一個名為Parameters.xml的xml文件來參數化.config文件。 我相信這個可以由您的網站和Web Job共享。 如何做到這一點的手冊

我們用於此類似目的的一種方法是將所有常見配置放在Azure中的表存儲帳戶上,並構建一個幫助程序類,從我們所稱的“運行時配置”中讀取配置,這基本上是一個Azure表存儲中托管的配置數據庫,所有組件都可以讀取該信息...

嘗試使用Microsoft.WindowsAzure.ConfigurationManager NuGet包中的CloudConfigurationManager類。

即。 var val = CloudConfigurationManager.GetSetting(key);

我發現這似乎是在Azure上運行時從主機Web App中提取設置。 如果你在本地調試,你仍然需要設置App.config值,我擔心。

編輯:再次重新閱讀您的問題(呃!)並看到您對使用章節的評論。 這個類不支持的AFAIK - 遺憾的是AppSettings部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM