在IIS服务器上loginASP.NET应用程序的正确/专业的方式

我们正在开发一个ASP.NET应用程序,并在我们的公司networking中build立了一个IIS服务器进行部署testing。 IIS服务器由我们的IT服务团队pipe理,我们只有必要的权限才能发布ASP.NET应用程序。

已经在其他.NET项目中使用了log4net,我也想在这里使用它,以获得debugging信息在该服务器上出错。 于是我请IT服务团队在服务器上build立一个目录:

  • IIS服务器用户(IIS APPPOOL)具有写入权限
  • 我们开发人员已经阅读权限
  • 不在应用程序目录中

这导致了开发人员(我们)和IT服务团队之间的一些反复,他们声称“这不是正确或专业的日志logging方式”,我们应该login到IIS日志。

我只在StackOverflow上发现了一个问题,它启发了我们实现了一个调用Response.AppendToLog的Appender,并且logging的消息确实出现在IIS日志中,但所有的空格被“+”取代,这使得堆栈跟踪基本上不可读。

当应用程序最终将部署在客户networking中时,我们当然需要排除和debugging一些将会发生的错误,而且不会有非常困难的debugging日志。

所以我的问题是:

我们的IT服务团队是否正确,我们所做的是“不专业”? 如果是的话,在IIS服务器中运行的应用程序的更专业的logging方式是什么?

不,他们是不正确的,这是一个经典的案例,有人断言一个事实根本是不真实的,因为他们是资源所有者,所以不能动。 您可以通过指向.NET Core来certificate这一点,这是该框架的最新和最大的迭代,该工具包含一个logging器工厂,用于输出到任何你喜欢的地方 – 通常是一个文件。

有很多监控工具可用于login到文件,Web应用程序,数据库,您可以将其命名。 将login与IIS日志或Windows服务器日志混合不专业的,你正在把你的问题分离,把它们扔出窗外。

专业的方式? 无论开发者认为最适合的空间消耗和错误的清晰度 – 你可以用手头的信息来解决问题的速度越快,你的客户就会越快乐。 如果你花费了半个小时的时间来debugging,因为代码本质上是写在脑子里的,你的客户会不高兴。

如果你的IT部门想要得到肛门的话,那就告诉他们,让我们做最好的练习。 要求提供完整的VSTS套件,devops人员来设置您的部署pipe道,为dev,uat和prod等etcc.etc获取一整套应用程序服务器和数据库服务器。

它的顶部和底部是这样的,你是开发者,你是这个特定主题的权威,这是你的应用程序,你的错误,你的日志。