asp.net程序错误 Server Error in '/' Application

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net程序错误 Server Error in '/' Application相关的知识,希望对你有一定的参考价值。

Parser Error Message: Ambiguous match found.

Source Error:

Line 1: <%@ Page language="c#" Codebehind="Admin_Setting.Aspx.cs" AutoEventWireup="false" validateRequest="false" Inherits="XfokSite.Manage.Admin_Setting" %>
Line 2: <!--#include file="Admin_Header.Aspx" -->
Line 3: <style type="text/css">

admin_header.aspx 代码如下 :

<%@ Import Namespace="XfokSite" %>
<script Language="c#" runat="Server">
private Xfok Xfok = new Xfok();
</script>
<%Xfok.SiteLoad();%>
<html>
<HEAD>
<TITLE><%=Xfok.Site_Info[0]%> - 后台管理</TITLE>
<META http-equiv=Content-Type content="text/html; charset=GB2312">
<LINK href="Xfok.CSS" type=text/css rel=stylesheet>
</HEAD>
<BODY text=#000000 bgColor=#f6f6f3 leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">
<Script Language="javascript" Src="../Inc/JS/Site_Char.JS"></Script>
<Script Language="JavaScript" Src="Js/Manage.Js"></Script>
<Script Language="JavaScript" Src="Js/Calendar.js"></Script>

在ASP.net中,每个aspx页面都会有一个.cs文件,(好像不可以多个aspx共用一个cs的,我前面就碰到这个问题),在aspx页面中,我们会用到服务器控件,或html控件,这些控件的id命名时,如果与cs文件中的变量重名的话,就会出错;而且不管大小写是否一样,都会报错;

可能大家会问,C#不是区分大小写的吗?C#是区分大小写的,也正是因为如此,我们在调试时不会报错,而IIS呢,它是不区分大小写的,发布后,就报错了。

当然,如果你不想改动程序去修正这个错误的话,你也可以将整个项目的源程序复制到IIS目录下,就可以正常运行,呵呵,非常不建议这样做;

我们写在程序时,虽然C#中,变量string company与string Company会被区分成两个变量;但我们并不提倡这样做,应尽量避免,这个大家一般不会写错;主要是aspx页面中的控件id,id之间也不要用相同的字符,而且与cs文件中变量名也不要采用相同的字符,不仅是区分大小写的问题;

再有,就是,在程序中,我们写好了一类,如Deparment;而我们在aspx的页面中,放了一个控件,如gridview,其id为department或是Deparment,在cs文件中,我们照样可以Deparment.DataSource,以及Deparment.DataBind()来绑定,都不会报错的;而一旦发布后,到了IIS中,就会报错;

这些命名方法,虽然不算错误的,但要避免,不要光看调试时报不报错,关键是,项目发布后是否正常运行;我们还要考滤项目发布后的运行环境,就是在IIS下的情况。

参考资料:http://eblog.cersp.com/userlog3/70963/archives/2008/853221.shtml

参考技术A <%Xfok.SiteLoad();%>
应该是:<%=Xfok.SiteLoad();%>本回答被提问者采纳

HTTP 错误 500.22 - Internal Server Error

HTTP 错误 500.22 - Internal Server Error

检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

最可能的原因:

此应用程序在 system.web/httpModules 节中定义配置。

可尝试的操作:

将配置迁移到 system.webServer/modules 节。也可以手动这样做,或通过在命令行中使用 AppCmd 来这样做。例如,从 IIS Express 安装目录运行 appcmd migrate config "Default Web Site/"。使用 AppCmd 迁移应用程序将使它能够在集成模式下工作,并能继续在经典模式下和以前版本的 IIS 上工作。

如果您确信可以忽略此错误,则可以通过将 system.webServer/[email protected] 设置为 false 来禁用它。

也可以将应用程序切换到经典模式应用程序池。例如,从 IIS Express 安装目录运行 appcmd set app "Default Web Site/" /applicationPool:"Clr4ClassicAppPool"。只有在无法迁移应用程序时才这样做。

详细错误信息:

模块    ConfigurationValidationModule
通知    BeginRequest
处理程序    PageHandlerFactory-Integrated-4.0
错误代码    0x80070032
请求的 URL    http://localhost:2959/about.aspx
物理路径    E:\**\**\**\about.aspx
登录方法    尚未确定
登录用户    尚未确定
请求跟踪目录    C:\Users\Administrator\Documents\IISExpress\TraceLogFiles\MYWEB.WEB

更多信息:

集成模式是在 IIS 7.0 及更高版本上运行 ASP.NET 应用程序的首选模式。

解决办法:

方法一:修改应用程序池托管管道模式至经典模式

技术分享

方法二,修改web.config

<httpModules>
<add type="URLRewriter.RewriterModule, URLRewriter" name="RewriterModule"/>
</httpModules>
<httpHandlers>
</httpHandlers>
</system.web>

修改为

<system.webServer>
<modules>
<add type="URLRewriter.RewriterModule, URLRewriter" name="RewriterModule"/>
</modules>
</system.webServer>
</configuration>

以上是关于asp.net程序错误 Server Error in '/' Application的主要内容,如果未能解决你的问题,请参考以下文章

asp.net,本地发布,IIS报错,HTTP 错误 500.19 - Internal Server Error

HTTP 错误 500.24 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

ASP.NET 网站迁移 HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用

asp.net mvc全局错误处理

HTTP 错误 500.23 - Internal Server Error

HTTP 错误 500.22 - Internal Server Error