25

我已经完成了简单的 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\,但这对我的项目来说是默认的。

4

17 回答 17

45

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

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

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

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

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

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

这是解决 asp.net 解析器错误的参考链接。

于 2014-01-23T08:46:29.560 回答
11

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

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

在此处输入图像描述

于 2014-09-13T06:20:59.537 回答
9

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

于 2016-06-16T06:39:38.237 回答
7

有时,如果您:

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

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

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

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

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

至: CodeFile="blahblahblah.aspx.cs"

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

于 2017-09-14T15:00:19.560 回答
4

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

于 2013-02-10T19:07:56.257 回答
4

我已经通过这种方式解决了。

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

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

转到浏览并安装“DotNetCompilerPlatform”。

于 2018-09-19T09:15:34.807 回答
2

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

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

于 2016-10-05T16:17:50.730 回答
1

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

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

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

于 2019-10-16T20:05:05.073 回答
0

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

于 2015-07-31T09:53:11.010 回答
0

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

于 2017-12-27T14:02:42.010 回答
0

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

<Compile Include="Global.asax.cs">
  <DependentUpon>Global.asax</DependentUpon>
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Compile>
于 2018-04-30T10:24:39.233 回答
0

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

就我而言...我已将我的网站上传到 GoDaddy 并收到解析器错误。

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

  <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>
于 2019-04-04T23:54:43.090 回答
0

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

于 2019-07-31T05:32:52.370 回答
0

查看错误消息,您的部分代码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#" %>
于 2020-03-22T15:08:18.157 回答
-1

我为时已晚,但让我解释一下我是如何解决这个问题的。

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

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

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

这对我有用。

于 2015-09-21T06:14:08.037 回答
-1

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

于 2020-05-19T18:20:02.733 回答
-3

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

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