【问题标题】:Parser Error when deploy ASP.NET application部署 ASP.NET 应用程序时出现解析器错误
【发布时间】:2013-02-10 17:36:12
【问题描述】:

我已经完成了简单的 asp.net web 应用程序项目,编译它,并尝试在本地 IIS 上进行测试。我创建了虚拟目录,将其映射到物理目录,然后将所有必要的文件放在那里,包括带有所有 .dll 的 bin 文件夹 在项目设置中,构建部分,输出路径为 bin\ 所以当我尝试浏览我的应用时,我得到了:

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 'AmeriaTestTask.Default'.

Source Error: 


Line 1:  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AmeriaTestTask.Default" %>
Line 2:  
Line 3:  <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ajaxToolkit" %>


Source File: /virtual/default.aspx    Line: 1 

阅读过类似的问题帖子,解决方案是将输出路径设置为 bin\,但这对我的项目来说是默认的。

【问题讨论】:

  • 解析器错误往往意味着您的 ASPX 页面格式不正确。
  • 感谢您的回复。我在 VS2010 中没有任何警告,并且从 IDE 项目运行得很好。
  • 会的。您是否在本地环境中加载了页面? (本地开发 Web 服务器、IIS express 或完整 IIS)
  • 是的,它是本地环境,我已经安装了工作站 Win7 x64 和 IIS 7.5
  • 看看 ASPX。确保标记都是有效的——它是好的 XML。

标签: asp.net parsing deployment


【解决方案1】:

我知道我来不及回答,但它可以帮助其他人并节省时间。

以下可能是其他解决方案。

Solution 1: 有关为您的应用程序创建虚拟目录的详细说明,请参阅为您的应用程序创建虚拟目录。

Solution 2: 您的应用程序的 Bin 文件夹丢失或应用程序的 DLL 文件丢失。有关详细说明,请参阅将应用程序文件复制到生产服务器。

Solution 3:您可能已部署到 Web 根文件夹,但尚未更改 Web.config 文件中的某些设置。有关详细说明,请参阅部署到 Web 根目录。

在我的情况下,Solution 2 工作,而从bin 目录部署到服务器一些DLL's 尚未成功上传到服务器。我已经再次重新上传所有 DLL,它可以工作了!!

这是solve asp.net parser error的参考链接。

【讨论】:

    【解决方案2】:

    我有同样的问题。进行 5 或 6 个小时的研究。一个简单的解决方案似乎正在奏效。我只需要将我的文件夹从 iis 转换为应用程序。它工作得很好。 (这是我从服务器 2003 迁移到服务器 2008 R2 的场景)

    (1) 打开 IIS 并选择需要转换的网站和相应的文件夹。右键单击并选择转换为应用程序。

    【讨论】:

    • 也为我工作。谢谢。对于面临此问题并尝试此解决方案的所有其他人,请准确复制旧 global.asax 中的所有代码并将其粘贴到新的 global.asax 文件中。对于那些不知道如何在您的项目中添加 global.asax 的人,请在此链接上给出说明:stackoverflow.com/questions/21346969/… 但请再次确保将旧 global.asax 中的代码完全复制到新的global.asax 然后它应该可以工作。祝你好运。
    • 它工作了,但我不明白它是如何工作的。请解释一下。您的链接无效。
    • 网站再次运行。我认为这就像添加一个单独的文件夹不会创建执行环境。 IIS 会将其视为一个文件夹。您将文件夹转换为应用程序,它将启用使用应用程序池的执行。无论如何,例如 .net/c# 环境等,对我来说这是一个误导性信息!
    【解决方案3】:

    尝试将CodeBehind="Default.aspx.cs" 更改为CodeFile="Default.aspx.cs"

    【讨论】:

      【解决方案4】:

      有时,如果您:

      1. 清洁解决方案/构建或,
      2. 重建解决方案/构建。

      如果它在此之后“突然”发生,并且您的代码有 build-time 错误,请先尝试修复这些错误。

      发生的情况是,在构建您的解决方案时,会创建 DLL 文件并将其存储在项目 bin 文件夹中。如果您的代码在构建时出现错误,则 DLL 文件没有正确创建,这会导致错误。

      “快速修复”是修复所有错误或将它们注释掉(如果它们不会影响其他网页。)然后重建项目/解决方案

      如果这不起作用,请尝试更改: CodeBehind="blahblahblah.aspx.cs"

      到: CodeFile="blahblahblah.aspx.cs"

      注意:将“blahblahblah”改为页面真实姓名。

      【讨论】:

        【解决方案5】:

        我已经解决了这个问题。 解决方案是不要手动创建虚拟目录,然后在此处复制应用程序文件,而是使用“添加应用程序...”选项。 这是帮助我的帖子http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/7ad2acb0-42ca-4ee8-9161-681689b60dda/

        【讨论】:

          【解决方案6】:

          我是这样解决的。

          转到您的项目文件,比如说项目/名称/bin,然后删除 bin 文件夹中的所有内容。 (这会给你另一个错误,你可以通过这种方式解决)

          然后在 Visual Studio 中右键单击项目的 References 文件夹,打开 NuGet 包管理器。

          去浏览并安装“DotNetCompilerPlatform”。

          【讨论】:

            【解决方案7】:

            当我在其中一个 ASHX 文件中出现编程错误时遇到了同样的错误:它是通过复制另一个文件创建的,并在代码隐藏语句中继承了它的类名。当所有 ASPX 和 ASHX 文件在 IIS Express 本地运行时没有错误,但一旦部署到服务器,它们就停止工作(全部)。

            一旦我找到了一个 ASHX 页面并修复了类名以反映它自己的类名,所有 ASPX 和 ASHX 文件开始在 IIS 中正常工作。

            【讨论】:

              【解决方案8】:

              这里的问题很老,但我遇到了同样的错误,提供的答案都没有解决这个问题。

              我的问题是因为我在初始创建后手动更改了项目的命名空间和程序集名称。让我注意到Inherits 属性中的命名空间与更新后的命名空间不匹配。

              更新 Global.asax 标记中的命名空间以匹配应用程序命名空间为我修复了错误。

              【讨论】:

                【解决方案9】:

                IIS 7 或 IIS 8 或 8.5 版本 - 如果您要从 2003 迁移到 2012/2008,请确保 Web 服务处于应用程序类型而不是虚拟目录中

                【讨论】:

                  【解决方案10】:

                  在我的例子中,在 IIS 中本地部署了新的代码分支和旧的代码分支。所以它指向不可用的旧分支代码。所以我已经将我的代码部署到带有新分支的 IIS,它现在正在工作。

                  【讨论】:

                    【解决方案11】:

                    就我而言,我错过了 .csproj 文件中的编译标记

                    <Compile Include="Global.asax.cs">
                      <DependentUpon>Global.asax</DependentUpon>
                      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
                    </Compile>
                    

                    【讨论】:

                      【解决方案12】:

                      有趣的所有不同场景..

                      就我而言...我已将我的网站上传到 GoDaddy,但遇到了解析器错误。

                      我通过在 web.config 中的 system.codedom 下注释掉 compilers 来解决它。 并且还为发布添加了一个自定义配置文件,该配置文件将在发布期间进行预编译。

                        <system.codedom>
                          <!--GoDaddy does not compile!-->
                          <!--<compilers>
                            <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
                            <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
                          </compilers>-->
                        </system.codedom>
                      

                      【讨论】:

                        【解决方案13】:

                        当您添加子文件夹和子文件夹中的文件时,Bin 文件夹中的 DLL 文件也可能已更改。当我在 Bin 文件夹中上传更新的 DLL 文件时,它解决了这个问题。感谢 Mayank Modi 提出或暗示。

                        【讨论】:

                          【解决方案14】:

                          看报错信息,你Default.aspx的部分代码是:

                          <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AmeriaTestTask.Default" %>
                          

                          AmeriaTestTask.Default 不存在,所以您必须更改它,很可能更改为 Default.aspx.cs 中定义的类。例如对于 web api 应用程序,在 Global.asax.cs 中定义的类是:public class WebApiApplication : System.Web.HttpApplication 并且在您拥有的 asax 页面中:

                          <%@ Application Codebehind="Global.asax.cs" Inherits="MyProject.WebApiApplication" Language="C#" %>
                          

                          【讨论】:

                            【解决方案15】:

                            我来晚了,但让我解释一下我是如何解决这个问题的。

                            这个问题基本上是由于文件夹/解决方案结构不当造成的。

                            出现此问题的原因可能是 1. 如果您从其他位置复制项目并尝试运行该项目。

                            所以要解决这个问题,请转到原始位置并再次交叉检查文件夹和文件。

                            这对我有用。

                            【讨论】:

                              【解决方案16】:

                              经过大量搜索,我发现问题出在我的项目 dll 文件中。当出现编译错误时,我清理并重建了我的项目...... 简单的解决方案是通过删除内容或注释行来删除所有页面中的所有编译错误,然后清理并重建您的项目...... 这将解决您的问题..

                              【讨论】:

                                【解决方案17】:

                                当 Debug 和 Release 文件夹中的文件未正确创建时会发生这种情况(它们的引用错误或被多次覆盖)。我遇到了同样的问题,当我们构建解决方案时,我一切正常,但是当我发布网站时,它给了我同样的错误。 我已经通过以下方式解决了这个问题:

                                1. 转到 Visual Studio 中的解决方案资源管理器并单击显示隐藏文件(如果它们没有显示!)
                                2. 你会发现一个名为obj的文件夹,打开它。
                                3. 这里又有 2 个文件夹,分别命名为 Debug 和 Release。 现在,从这两个文件夹中删除内容,确保不要删除文件夹 Debug 和 Release。只删除 Debug 和 Release 文件夹中的文件和文件夹。
                                4. 现在构建并发布您的解决方案,一切都会像魅力一样发挥作用。

                                【讨论】:

                                • 签入 IIS => 站点 => 默认网站 => YourProject 右键单击​​并检查基本设置中的物理路径。
                                猜你喜欢
                                • 2012-08-28
                                • 2021-12-06
                                • 2017-10-08
                                • 1970-01-01
                                • 1970-01-01
                                • 1970-01-01
                                • 2017-05-22
                                • 2013-01-18
                                • 2019-06-09
                                相关资源
                                最近更新 更多