【问题标题】:ASP.NET MVC3 Debugging Application_StartASP.NET MVC3 调试 Application_Start
【发布时间】:2012-01-09 16:50:11
【问题描述】:

我正在尝试将我的第一个 MVC3 应用程序部署到运行 IIS-7.5 的服务器上。我已经启动并运行了它,但是我的调试方法遇到了一些问题。我使用了专有的调试结构,当我在本地运行应用程序(使用内置的“IIS Express”模块和 Visual Studio)时,它工作得很好——但是当我部署到服务器时,我什至没有创建我的调试文件,少得多打印到。

调试文件是在 Application_Start 事件中创建的,所以我在 Application_Start 事件中添加了一个事件日志标记,并在本地和服务器上运行应用程序,只是为了查看事件是否被触发。我的本地事件日志按预期标记,但服务器上的事件日志没有任何新标记。这是怎么回事?

protected void Application_Start()
  {
     AreaRegistration.RegisterAllAreas();

//This is just some code that calls to another module I wrote to easily stamp to the Event logs - it works, trust me
     EventLogging.Initialize();
     EventLogging.WriteEventLog("Application Start Called Successfully");
  }

【问题讨论】:

  • by 'debug file' 您说的是事件日志条目(这需要您的应用程序池身份对事件日志的权限)而不是物理文件?
  • @AdamTuliper 很抱歉有歧义 - 在上面的短语中,“调试文件”指的是物理文件。但是,我既不能写入物理文件,也不能写入事件日志。让我尝试将我的应用程序身份池直接添加到事件日志权限...
  • @AdamTuliper 好的,我直接在注册表编辑器中将 AppPool Identity 添加到 EventLogs 的 ACL - 仍然没有... =( 也许我有一个更基本的问题?::sigh::
  • 这是完全专有的日志记录吗?是否有任何动态程序集加载?例如,log4net 将使用调试输出(您可以使用 dbgview 看到这一点)。这个记录器会做这些吗?
  • @AdamTuliper 是的,它完全是专有的。但是,它现在正在工作,见下文。 =)

标签: c# asp.net asp.net-mvc-3 iis-7.5


【解决方案1】:

我相信您遇到的问题是 IIS 进程是在网络服务帐户下运行的。默认情况下,此帐户仅对 IIS 根文件夹具有读取和执行权限。因此,任何写入本地文件系统的尝试都将失败。

要完成这项工作,您需要授予网络服务帐户对相关文件的显式写入权限。这可以通过 Windows 资源管理器完成。

  • 右键单击文件并选择属性
  • 转到安全选项卡
  • 为网络服务帐户添加写入权限

【讨论】:

  • 我已将网络服务添加到网站父文件夹的证券列表中,并将权限传播到所有子对象 - 没有骰子。 =(
  • @C.Barlow 您是否检查了事件日志或附加了调试器?听起来好像有别的事情发生了
  • 事件日志没有显示任何内容。不幸的是,鉴于此事件是第一个触发的事件,我不知道如何在调试器运行之前附加它...
  • @C.Barlow 添加一个Debugger.Break 调用作为方法中的第一个语句。
  • 也正如@CtrlDot 指出的那样,您可能需要在 IIS7 中授予与以前版本不同的帐户的访问权限。
【解决方案2】:

IIS 7.5 为应用程序池使用虚拟帐户。

App Pool Identities。确保特定的应用程序池身份可以访问适当的文件夹以进行读/写。

【讨论】:

  • 这很有趣!我能够将我的应用程序池身份添加到权限列表 (ACL),但仍然没有文件。我不知道如何更改事件日志的权限,以便该帐户可以写入它们 - 我认为任何帐户都应该能够做到这一点......
  • 更新 -- 我能够通过注册表编辑器将我的 AppPool 身份添加到事件日志权限 ACL,但仍然没有。
  • 看看stackoverflow.com/questions/6351608/…。发帖人声称他们的日志记录在除应用程序启动之外的任何地方都有效,对您来说也是如此吗?
  • 我发现这篇关于在 application_start 中附加调试器的文章...尚未尝试过,但它可能会对您有所帮助。 west-wind.com/weblog/posts/2011/Dec/15/…
  • 好的,这绝对是其中很大一部分,但这样做后我仍然遇到问题。最后,我不得不从服务器上提取代码并重新发布。突然,它起作用了... =(
猜你喜欢
  • 2012-09-06
  • 2011-10-28
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
  • 2010-11-01
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多