【问题标题】:ASP.NET IIS7.5 Parser ErrorASP.NET IIS7.5 解析器错误
【发布时间】:2013-05-02 18:09:15
【问题描述】:

我有一个生产系统和测试系统,都运行 IIS。在生产系统中,一切运行良好。在测试系统中,我有一个包含站点代码的文件夹的定向副本,该文件夹被设置为虚拟目录。 App_Code 文件夹位于根目录中,包含所有 .cs 文件。在测试中运行同一站点时,我得到一个

Server Error in '/' Application.
--------------------------------------------------------------------------------

Parser Error 
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

Parser Error Message: Could not load type 'SPTasks.master'.

Source Error: 


Line 1:  <%@ Master Language="C#" inherits="SPTasks.master"%>
Line 2:  <html> 
Line 3:  <head runat="server">


Source File: /SPTasks/master.master    Line: 1

知道为什么这会在测试中而不是在生产中吗?代码是不是因为某种原因没有编译?

谢谢!

【问题讨论】:

  • 这些是不同的机器吗?你检查过应用程序池中的框架吗?是例如Mvc 安装了吗?
  • 它们是不同的机器。他们都使用 ASP.NET Framework 2.0 并安装了 3.5 附加功能。我不确定 MVC 的具体情况。有没有在 IIS7.5 中快速检查的方法?
  • @Silvermind 根据 MVC 的版本,希望是 3+,您不需要在服务器本地安装它。它应该完全从应用程序的 bin 文件夹中运行。
  • @steventnorris kettch 关于安装Mvc 是正确的,但这只是依赖要求的问题。检查此问题是否适用。 Do I need to install MVC 3/4 on web server to run mvc application
  • 好吧,我没有使用 Visual Studio 来创建这些文件,因此可部署的依赖项已经失效。我正在逐个文件地创建文件和文件夹结构。

标签: c# asp.net iis iis-7


【解决方案1】:

一些 cmets 询问了 MVC,但这看起来像一个 WebForms 应用程序 - 如果我错了,请纠正我?过去,如果应用程序尚未编译,我会看到此错误。您提到您一次复制一个文件。你真的编译过应用程序吗?如果 bin 文件夹中没有包含 SPTasks.master.cs 类的编译代码的 dll,您将收到此错误。由于您没有使用 VS 编译应用程序,因此您需要按照 this MSDN article 直接从命令行使用 csc。

如果您在其中有一个 dll,则可能值得使用反编译器(ReflectorJetbrains DotPeek,这是免费的)来验证 SPTasks.master.cs 类是否存在。

要检查的另一件事是,运行该站点的应用程序池配置为 .Net Framework 2.0 版而不是 4.0 版

【讨论】:

  • 我认为这也是一个编译问题。据我了解,App_Code 中的代码应在站点应用程序首次运行时编译(如果尚未编译)。因此,当我第一次导航到该站点时,它应该编译代码。我从来不需要在我们的生产环境中通过命令行编译。
  • 我做了一些检查,你是对的。代码未编译。但是,我不必将代码编译到 bin 文件夹中即可工作。它在第一次运行时编译,如“自动编译”下所述:msdn.microsoft.com/en-us/library/ms178466(v=VS.100).aspx
  • 听起来您按照网站模型而不是 Web 应用程序模型进行设置。也许您有与dynamic compilation 相关的设置丢失或设置不正确?
  • 我听说过网站与网络应用模型。我不确定在哪里可以确保动态编译设置。我一直只是将我的文件夹复制过来,但 IIS7.5 似乎没有为动态编译准备好设置。 (这是所有无法编译的代码,不是这个文件。我检查了)我在哪里可以找到这些设置?
  • 都在Web.configcompilation部分
【解决方案2】:

您的 IIS 网站可能配置错误。 IIS“虚拟目录”与应用程序范围不同。

在 IIS 管理器中,右键单击应用程序的根目录并选择“转换为应用程序”。

【讨论】:

  • 虚拟目录是生产环境的工作方式,测试环境需要完全镜像生产。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
相关资源
最近更新 更多