問題描述
把Web Role服務發(fā)布到Azure Cloud Service后罩旋,需要在IIS的輸出日志中,把每一個請求的HTTP Request Header中的User-Agent內(nèi)容也輸出到日志中。通過Cloud Service(云服務)如何實現(xiàn)呢憋飞?
解決方案
方案一(臨時):Cloud Service WebRole是Host在IIS中同规,所以可以通過對IIS的Logging設置就可以(RDP到VM中修改)
1:RDP到云服務的實例上,搜索IIS Manager
2:打開之后咧擂,找到云服務實例逞盆,點擊Logging。 如下截圖所示:
3:打開之后松申,在Log File 里面的Format 選擇W3C 云芦,點擊Select Fields,進行添加自定義字段
4:修改完成后俯逾,新生成的IIS日志中就會包含列名為UUID,內(nèi)容為User-Agent的內(nèi)容舅逸。
方案二:通過Cloud Service的啟動任務對IIS Logging進行設置(需重新部署一次云服務)
1:在Cloud Service中設置啟動任務桌肴,在WebRole項目的ServiceDefinition.csdef文件中加入 Startup 內(nèi)容:
<Startup>
<Task commandLine="Startup.cmd" executionContext="limited" taskType="simple" >
<Environment>
<Variable name="MyVersionNumber" value="1.0.0.0" />
</Environment>
</Task>
</Startup>
2: 在項目根目錄中添加文件 Startup.cmd,文件內(nèi)容為:
d /d "%~dp0"
%windir%\system32\inetsrv\appcmd.exe set config -section:system.applicationHost/sites /+"siteDefaults.logFile.customFields.[logFieldName='UUID',sourceName='User-Agent',sourceType='RequestHeader']" /commit:apphost >> "%TEMP%\StartupLog.txt" 2>&1
exit /b 0
PS: 通過修改IIS config的方式來配置Loggin中的自定義日志字段
3: 重新部署整個Cloud Service琉历,即可生效坠七。
參考資料
如何配置和運行 Azure 云服務(經(jīng)典)的啟動任務:https://docs.microsoft.com/zh-cn/azure/cloud-services/cloud-services-startup-tasks#example-of-a-startup-task
Adding Custom Fields to a Log File for a Site <add> : https://docs.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/logfile/customfields/add#sample-code
如何在部署云服務Cloud Service時候通過啟動任務Start Task來配置IIS (如開啟ARR) : https://www.cnblogs.com/lulight/p/13579629.html
當在復雜的環(huán)境中面臨問題,格物之道需:濁而靜之徐清善已,安以動之徐生灼捂。 云中,恰是如此!
分類: 【Azure 云服務】
標簽: 把HTTP Request Header中的User-Agent字段增加到IIS輸出日志中, Web Role(IIS Host)增加自定義字段, Cloud Service, Azure Developer