我想在http请求内部到达IIS中的云服务时看到它。我已经查看了相当多的信息,但不太清楚如何启用它。例如,this site提供了一些有用的信息。继该页面中,我所实现的是这样的:Azure云服务:如何登录IIS请求
连接到我的云服务在Visual Studio和更新日志 目录转会期为1分钟(我尝试了不同的缓冲 大小,但都没有效果)。
选定在Visual Studio中云服务,并选择以查看诊断数据。然后选择IIS日志,Windows Azure的日志里面 目录:
在这一点上,我得到一个404错误:
所以,看来,虽然我已经成立了e接收日志文件的可能性,它们实际上并未生成。如果我可以在不重新部署的情况下完成这一切,那将是理想的,但我认为我可能需要在web.config中启用某些内容 - 只是不知道该怎么做。我已阅读this answer中提供的链接,但无法找到我实际需要实现的功能,超出了我已完成的功能。任何指针都会很棒,如果更容易尝试一种不同的(非IIS)方法,那么很高兴。
更新
因此,基于从MikeWo和kwill的有用的建议,我做了一些进一步的挖掘。首先,我确保存储帐户配置正确。它似乎是,首先是因为这是我用于我的Web应用程序的用户上传文件正确启动的相同帐户,其次是因为我启用了基础结构日志,使用与IIS相同的过程并且日志启动了:
这使我认为IIS日志不是首先生成的。所以,我用远程桌面连接到服务器。使用IIS管理器中,我第一次看到日志服务器:
日志文件的位置不存在。所以看起来这个文件夹还没有被创建,并且在这里没有任何记录。 接下来,我看了看记录为我的网站:
在这种情况下,有日志文件,但他们从一个多月前。最后,我按照指示here和here希望我能够提高网站的日志记录级别。
appcmd set config /section:httpLogging /dontLog:False
appcmd.exe set config "<mysite>" -section:system.webServer/httpLogging /dontLog:"false" /commit:apphost
appcmd.exe set config "<mysite>" -section:system.webServer/httpLogging /selectiveLogging:"LogAll" /commit:apphost
命令成功,但这似乎没有效果,我没有看到任何更多的日志出现在我的IIS文件夹中。
然后我尝试:
appcmd set config /section:httpLogging /dontLog:False /commit:WEBROOT
并得到:
Description: The configuration section 'system.webServer/httpLogging' cannot be read because it is missing a section declaration
我不是太热衷于去服务器上更改配置文件,但我想,如果我得到了一些安慰,我沿着正确的道路走下去。另外,我意识到这些变化并不会持久,但我只是想看看我能否得到任何工作。
这些都是在Visual Studio中的诊断设置它使用相同的存储帐户作为我的应用程序的正常工作:
很明显的是,IIS诊断文件在正确的位置转动起来要转移到存储:
解
kwill's answer最终让我走上了正轨。 IIS文件夹确实存在,但最后一个日志来自一个月前。我添加了一个虚拟文件,它出现在blob中。我将添加一个关于为什么IIS日志不被更新的单独问题。
非常感谢,我会锻炼耐心,看到我找到。 – acarlon
我实际上在一夜之间启用了日志记录,没有任何东西出现。根据我的更新,我没有多少运气做了一些更多的分析。 – acarlon
如果部署新的默认WebRole并将目录传输周期设置为1分钟,则会发现C:\ Resources \ .DiagnosticStore文件夹确实存在,并且会生成IIS日志并将其传输到存储。如果该文件夹在您的部署中不存在,那么只要打开诊断程序,该文件夹就是由来宾代理程序创建的,就会发生一些非常奇怪的事情。您可以查看C:\ config中的最新XML文件,并确保定义了DiagnosticStore本地存储资源。 –
kwill