Parser Error when deploy ASP.NET application
我已经完成了简单的ASP.NET Web应用程序项目,编译了它,并尝试在本地IIS上进行测试。我已经创建了虚拟目录,将其映射到物理目录,然后将所有必要的文件放在那里,包括包含所有.dll的bin文件夹在"项目设置"的"生成"部分中,输出路径为bin所以当我尝试浏览我的应用程序时,我得到了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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分析器错误的引用链接。
有时,如果你:
如果在这之后突然发生,并且您的代码有构建时错误,那么首先尝试修复这些错误。
当构建解决方案时,会创建DLL文件并将其存储在项目bin文件夹中。如果在生成期间代码中有错误,则不会正确创建dll文件,这会导致错误。
"快速修复"是修复所有错误或将其注释掉(如果它们不会影响其他网页),然后重新生成项目/解决方案。
如果这不起作用,请尝试更改:codebehind="布拉布拉赫布拉赫.aspx.cs"
到:codefile="blahblahblahblah.aspx.cs"
注意:将"blahblahblah"更改为页面实名。
我也有同样的问题……做了5到6个小时的研究。简单的解决方案似乎有效。我只需要将文件夹从IIS转换为应用程序。它工作得很好。(这是一个场景,我从Server2003迁移到了Server2008 R2)
(1)打开IIS,选择需要转换的网站和相应文件夹。右键单击并选择"转换为应用程序"。就在这里…http://www.windowstechinfo.com/2014/09/solved-an-error-occurred-during.html
我是这样解决的。
转到您的项目文件,比如project/name/bin,然后删除bin文件夹中的所有内容。(这将给您另一个错误,您可以用这种方法解决它)
然后在Visual Studio中,右键单击项目的引用文件夹,打开Nuget包管理器。
转到浏览并安装"DotNetCompilerPlatform"。
尝试将
我已经解决了这个问题。解决方案是不手动创建虚拟目录,然后在此处复制应用程序文件,而是使用"添加应用程序…"选项。以下是帮助我的帖子:http://social.msdn.microsoft.com/forums/en-us/winformsetup/thread/7ad2acb0-42ca-4ee8-9161-681689b60dda/
当我在其中一个ashx文件中遇到编程错误时,也遇到了同样的错误:它是通过复制另一个文件创建的,并且在code behind语句中继承了它的类名。当所有aspx和ashx文件都在本地的IIS Express中运行时没有错误,但是一旦部署到服务器上,它们就停止工作(全部停止工作)。
一旦我发现了一个ashx页面并修复了类名以反映它自己的类名,所有的aspx和ashx文件在IIS中都开始正常工作。
有趣的是所有不同的场景。
在我的例子中……我把我的站点上传到了godaddy,并得到了解析器错误。
我通过在web.config中的
1 2 3 4 5 6 7 | <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=\"Web\" /optionInfer+" /> </compilers>--> </system.codedom> |
在我的例子中,我错过了.csproj文件中的compile标记。
1 2 3 4 | <Compile Include="Global.asax.cs"> <DependentUpon>Global.asax</DependentUpon> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Compile> |
在我的例子中,有新的代码分支,旧的代码分支部署在本地的IIS中。所以它指向了不可用的旧分支代码。所以我用新的分支将我的代码部署到了IIS,现在它正在工作。
IIS 7或IIS 8或8.5版本-如果要从2003迁移到2012/2008,请确保Web服务位于应用程序类型而不是虚拟目录中
我来不及了,但让我解释一下我是如何解决这个问题的。
这个问题主要是因为文件夹/解决方案结构不正确。
出现此问题的原因可能是1。如果您已从其他位置复制了项目并尝试运行该项目。
所以要解决这个问题,请转到原始位置,再次交叉检查文件夹和文件。
这对我有用。
当debug和release文件夹中的文件没有正确创建时就会发生这种情况(它们的引用错误或被多次覆盖)。我也面临着同样的问题,在这个问题上,当我们构建解决方案时,我的一切都很好,但是当我发布网站时,它给了我同样的错误。我通过以下方式解决了这个问题: