部署ASP.NET应用程序时出现分析器错误

问题描述 投票:14回答:13

我已经完成了简单的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 \,但它是我的项目的defalut。

asp.net parsing deployment
13个回答
37
投票

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

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

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

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

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

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

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


0
投票

在我的情况下,我错过了.csproj文件中的编译标记

CodeFile="Default.aspx.cs"

0
投票

有趣的所有不同的场景..

在我的情况下...我已经将我的网站上传到GoDaddy,并得到了Parser Error。

我通过在web.config中的<Compile Include="Global.asax.cs"> <DependentUpon>Global.asax</DependentUpon> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Compile> 下注释compilers解决了这个问题。还可以添加用于发布的自定义配置文件,以便在发布期间进行预编译。

system.codedom

-2
投票

我来不及但是让我解释一下我是如何解决这个问题的。

这个问题基本上是因为文件夹/解决方案结构不正确。

可能会发生此问题,因为1.如果您已从其他位置复制项目并尝试运行该项目。

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

这对我有用。


-3
投票

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

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

6
投票

我有同样的问题..跑5或6个小时的研究..简单的解决方案似乎工作..我只需要将我的文件夹从iis转换为应用程序..它工作正常。 (这是我从服务器2003迁移到服务器2008 R2的情况)

(1)打开IIS并选择需要转换的网站和相应的文件夹。右键单击并选择转换为Application。它在这里.. http://www.windowstechinfo.com/2014/09/solved-an-error-occurred-during.html


5
投票

有时会发生以下情况:

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

如果在此之后“突然”发生,并且您的代码存在构建时错误,请先尝试修复这些错误。

发生的是,在构建解决方案时,会创建DLL文件并将其存储在项目bin文件夹中。如果在构建期间代码中存在错误,则无法正确创建DLL文件,从而导致错误。

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

如果这不起作用,那么尝试更改:CodeBehind =“blahblahblah.aspx.cs”

to:CodeFile =“blahblahblah.aspx.cs”

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


2
投票

我已经解决了这个问题。解决方案是不手动创建虚拟目录,然后在此处复制应用程序文件,但使用“添加应用程序...”选项。这是帮助我qazxsw poi的帖子



2
投票

我这样解决了。

转到项目文件,让我们说项目/名称/ bin并删除bin文件夹中的所有内容。 (这会给你另一个错误,你可以用这种方式解决)

然后在您的visual studio中右键单击项目的References文件夹,打开NuGet Package Manager。

转到浏览并安装“DotNetCompilerPlatform”。


1
投票

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

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


0
投票

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


0
投票

就我而言,在IIS中本地部署了新的代码分支和旧的代码分支。所以它指向了不可用的旧分支代码。所以我已经使用新分支将我的代码部署到IIS,现在它正在运行。

© www.soinside.com 2019 - 2024. All rights reserved.