我正在开发一款应用。使用Common.Logging(http://netcommon.sourceforge.net/index.html)。 简化的日志记录配置(在web.config中完成)如下:
<configuration>
...
<arg key="configType" value="FILE" />
<arg key="configFile" value="NLog.config" />
...
</configuration>
正如您在此处所看到的,配置指向后端日志记录框架的另一个配置文件(此处为NLog.config)。
我的问题是:在Azure中部署时,我应该在这里指定什么路径(在开发时,在构建解决方案时复制NLog.config,并将其放在bin目录中)。换句话说,获取在Azure中部署应用程序的物理位置的SAFEST方法是什么?
提前致谢!
答案 0 :(得分:2)
在代码中,您可以使用Server.MapPath("/")
找到应用程序的当前路径。现在,您只需确保将 NLog.config 文件部署到应用程序文件夹:
要对此进行测试,您可以右键单击Azure项目,然后选择包。在Azure项目的 bin \ Release | Debug \ app.publish 文件夹中,您将找到 *。cspkg 文件。将.zip扩展名添加到此文件并使用WinRAR / ZIP / 7zip / ...打开文件然后你会看到一个类似这样的文件: SomeWebRole_1a91f39a-49b7-4ece-873f-862172a2fa06.cssx 。再次,将.zip扩展名添加到此文件并打开它。
如果您导航到 sitesroot \ 0 文件夹,您将在IIS中看到Web应用程序的文件,包括NLog.config文件。这样,您只需在Common.Logging设置中引用NLog.config文件: