




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Q1:在验证发生前无法调用”Page.IsValid”问题的由来在ASP.Net中,为了方便表单的验证,提供了验证控件来完成表单输入数据的验证。这些验证控件确实是功能强大,为写表单程序提供了极大的便利。但是,在不熟悉的情况下,经常碰到问题。其中,最常见的是遇到错误:在验证发生前无法调用Page.IsValid。这个问题我认为是很多朋友受了《深入接触ASP.Net》这本书。这本书在网友间流传甚广,也确实是一本不错的入门书,但是错误也有一些,比如这里。在该书论述到验证组件的时候,演示RequiredFieldValidator的用法时,有这样一个程序:RequiredFieldValidator.aspx:<%@PageLanguage="C#"%><ScriptLanguage="C#"Runat="Server">protectedvoidPage_Load(objectsender,EventArgse){if(Page.IsPostBack){if(Page.IsValid){this.lblMessage.Text="已经通过验证";}else{this.lblMessage.Text="没有通过验证";}}}</script><html><head><title></title></head><body><formrunat="server"><table><tr><tdcolspan=2align="center"><b>RequiredFieldValidator控件演示</b></td></tr><tr><td>姓名:</td><td><asp:TextBoxid="name"runat="server"/>*<asp:RequiredFieldValidatorid="rfv1"runat="server"ControlToValidate="name"Display="Static">(请填写姓名)</asp:RequiredFieldValidator></td></tr><tr><td>年龄:</td><td><asp:TextBoxid="age"runat="server"/>*<asp:RequiredFieldValidatorid="rfv2"runat="server"ControlToValidate="age"Display="Static">(请填写年龄)</asp:RequiredFieldValidator></td></tr><tr><td><asp:ButtonText="提交"runat="server"/></td><td></td></tr></table><hr><asp:Labelid="show"ForeColor="red"runat="server"/></form></body></html>运行这个程序,就发生了错误:在验证发生前无法调用Page.IsValid。应在控件的事件处理程序中使用CausesValidation=True或在调用Page.Validate后对它进行查询。这个问题的发生来自作者的一个小疏忽。其实,在点击提交按钮时,程序先进行了验证,验证通过后才会和服务器交互(这里是重新加载,调用了Page_Load)。问题的根源是对于asp:Button控件,点击的时候是默认先进行表单的验证的。有的朋友希望在表单里有两个按钮,其中有的按钮执行的操作和表单本身无关,不需要验证,但也默认必须进行验证,对程序设计上造成不少烦恼。其实,这个问题很好解决。Button控件有一个属性CauseValidation,默认是true。只需要将此属性设为false,就不会引发表单验证了。需要验证的时候,可以手工调用验证代码:验证控件.Validate()或者Page.Validate()进行验证。3、出现的cmd窗口中显示“开始安装ASP.NETXXX”等内容,等待这个窗口自动关闭。
好了,到这里一般问题就解决了,如果尚未解决请参考下面的文章。来源:互联网。
------------------------------------
装了VS2005再装IIS,结果出了些小问题
访问IIS元数据库失败
思考可能是次序出了问题,解决
1、打开CMD,进入C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
2、输入aspnet_regiis.exe-i
稍等片刻,注册成功就解决问题了。
接着还会出现“未能创建Mutex”的问题
解决方法:
1、先关闭你的VS2005。
2、打开C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary
ASP.NETFiles找到你刚才调试的程序的名字的目录删除它。
3、关闭IIS服务器,重开一次。
4、用IE浏览一下你的程序,问题解决。Q5:MMC检测到此管理单元发生一个错误症状描述:系统是2003+sp2,安装sql2005后在计算机管理-服务和应用程序打开的时候提示错误要变通解决此问题,请按照下列步骤操作进入WMIMMC管理单元:1.开始——运行——输入mmc然后单击确定。2.在文件菜单上,单击"添加/删除管理单元。3.在添加/删除管理-中对话框中,单击添加。4.在“可用的(独立)管理单元”列表的“管理单元”项中,选择“WMI控件”,并单击确定。问题即可解决!Windowsserver2003IIS6重装之后进行Web服务扩展设置出现mmc检测到此管理单元发生一个错误,且应用程序池处于停止状态,无法正常启用。在重装IIS之前已经安装.net2.0此时2.0未在服务扩展设置列表之中,怀疑为net2.0问题,重新.net2.0之后问题依旧。事件日志错误记录:警告内容:为应用程序池'DefaultAppPool'提供服务的进程意外终止。进程ID是'2408'。进程退出代码是'0xffffffff'。有关更多信息,请参阅在
/fwlink/events.asp
的帮助和支持中心。错误内容:应用程序池'DefaultAppPool'被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。有关更多信息,请参阅在
/fwlink/events.asp
的帮助和支持中心。处理办法:为IISADMINSERVICE加上NETWORKSERVICE访问iis服务的权限,具体方法如下:点击“开始”->“设置”->“控制面板”->“管理工具”->“组件服务”->“组件服务”->“计算机”->“我的电脑”->“DCOM配置”->“IISADMINSERVICE”,右健选择“属性”->“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号“NETWORKSERVICE”账号,并给赋予“本地启动”和“本地激活”的权限,然后“确定”。重新启动IIS(点“开始”-“运行”-“CMD”,点确定,然后运行iisreset/RESTART),至此一切恢复正常。我安了一个XPsp3的系统,我安好IIS之后,我去浏览网页就弹出一个对话框,说“MMC检测到此管理单元发生一个错误,建议关闭并重新启动MMC!”在网上找到的解决方法,拿给大家分享一下1.单击“开始”,单击“运行”,键入regedit,然后单击“确定”。
2.在左窗格中,找到以下注册表子项,然后单击它:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC
3.在“编辑”菜单上,指向“新建”,然后单击“项”。
4.键入UseNewUI作为新名称,然后按Enter。
5.在“文件”菜单上,单击“退出”。Q6:虚拟目录是什么作用?如何配置IIS设置虚拟目录主目录位置一旦改变,所有Internet用户的请求都将被路由到这个新的目录位置,IIS也将把这个目录作为一个单独的站点来对待,并完成与各组件的关联。不过,有时IIS也可以把用户的请求指向主目录以外的目录,这种目录就称为虚拟目录。下面我们讲解虚拟目录是怎么回事。
我们知道,建站人员必须为建立的每个Internet站点都指定一个主目录。主目录是一个缺省位置,当Internet用户的请求没有指定特定文件时,IIS将把用户的请求指向这个缺省位置。代表站点的主目录一旦建立,IIS就会缺省地使这一目录结构全部都能由网络远程用户所访问,也就是说,该站点的根目录(即主目录)及其所有子目录都包含在站点结构(即主目录结构)中,并全部能由网络上的用户所访问。一般说来,Internet站点的内容都应当维持在一个单独的目录结构内,以免引起访问请求混乱的问题。特殊情况下,网络管理人员可能因为某种需要而使用除实际站点目录(即主目录)以外的其他目录,或者使用其他计算机上的目录,来让Internet用户作为站点访问。这时,就可以使用虚拟目录,即将想使用的目录设为虚拟目录,而让用户访问。
处理虚拟目录时,IIS把它作为主目录的一个子目录来对待;而对于Internet上的用户来说,访问时并感觉不到虚拟目录与站点中其他任何目录之间有什么区别,可以像访问其他目录一样来访问这一虚拟目录。设置虚拟目录时必须指定它的位置,虚拟目录可以存在于本地服务器上,也可以存在于远程服务器上。多数情况下虚拟目录都存在于远程服务器上,此时,用户访问这一虚拟目录时,IIS服务器将充当一个代理的角色,它将通过与远程计算机联系并检索用户所请求的文件来实现信息服务支持。
创建虚拟目录的操作步骤如下:SPAN>),并从中展开IIS项,MMC将显示IIS的配置选项。
(2)使用鼠标右键单击想要配置其虚拟目录的站点,这会打开一个快捷菜单,从中单击“新增”子菜单下的“虚拟目录”命令,MMC即会启动“新虚拟目录向导”并显示其对话框。
(3)在该对话框中的“用来访问虚拟目录的别名”字段框中为欲建的虚拟目录定义一个名字,如“newspaper”,然后单击“下一步”按钮继续。
(4)在随后出现的对话框中,需要输入该虚拟目录的物理位置,即其实际位置。如果该虚拟目录在本地服务器中,则可直接指定路径,如“C:\mywebsite\myvirtualdirectory”;如果它在远程的服务器中,则需指定服务器名和虚拟目录的共享名(此时虚拟目录必须具有网络共享的属性),如“\\servemame\sharename”。然后单击“下一步”按钮,新虚拟目录向导将显示设置访问权限的对话框。
(5)从中为虚拟目录所代表的站点选择适当的权限。最后,单击“完成”按钮,所设虚拟目录即可生效。
以后,输入站点的URL地址并在后面依次加上斜杠(/)和虚拟目录的别名,即可访问该虚拟目录。例如,原站点的URL地址为,建立名为newspaper的虚拟目录后,输入/newspaper即可访问这个虚拟目录。使用虚拟目录的重要意义是,网络管理员可以把Web站点的负载分布到多台服务器上,这样使每台服务器都能保持较高的处理速度。
设置主页文件
在用户访问Web服务器的时候,如果要求他们必须记住并输入该站点的主页文件,这显然是不现实的。所以我们需要为服务器设置一个默认的主页文件,从而用户只需输入Web服务器站点的地址,便可以直接浏览该站点的主页,继而通过主页中的超链接去访问站点中的其他网页内容。在IIS的Web服务器中,一个站点的主页文件是可以任意设置的。具体操作方法如下:
(1)在MMC中选取想要配置的Web站点并单击鼠标右键,然后从出现的快捷菜单中选择“属性”命令,即可打开当前所选站点的属性对话框(参见图4.15所示),从中单击并打开“文档”选项卡,如图4.24所示。
(2)选中“启用默认文档”复选项,然后单击“添加”按钮,从出现的“添加默认文档”对话框(图4.25)中输入主页文件名并单击“确定”按钮,即可把主页文件添加到“文档”选项卡中。
(3)如果选项卡中的列表框内有多个主页文件,用户可单击左边的上、下箭头按钮,来调整它们的先后顺序,排在最上面的将是默认的主页文件,浏览器默认打开的就是该文件。
(4)对于不需要的主页文件,用户还可以选中它后单击旁边的“删除”按钮,把它从列表中删除掉。
(5)NT-FAMILY:宋体;mso-ascii-font-family:'TimesNewRoman';mso-hansi-font-family:'TimesNewRoman'">另外,如有需要,还可以在选项卡中指定是否需要“启用文档脚注”,以及指定脚注文件等。
(6)最后单击“确定”按钮,即可使设置的主页文件生效。Q7:IIS没有对“*\TemporaryASP.NETFiles”的写访问权限解决关键字:编程环境重装系统后第一次在IIS上发布网站,出现“没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\TemporaryASP.NETFiles”的写访问权限。”今天突然想浏览以前IIS中发布后的网站,却发现了浏览器显示“没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\TemporaryASP.NETFiles”的写访问权限。”的错误从而导致网站无法访问了,很郁闷,于是Google了一下,找到了以下方法解决办法大概是几种方法1.由于IIS和framework安装的顺序不对,所以要卸掉,重新安装。顺序是先装IIS然后装framework方法2.重新注册IIS服务扩展,在“开始”-“运行”里输入如入命令
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis-i-enable
回车看到这些方法,于是看了看自己IIS的安装是正确的,就重新注册IIS服务了一下,但是注册后,还是不行。What’sup?既然说是没有emporaryASP.NETFiles
文件夹的写访问权限,那就检查一下。按照提示,打开C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
但是没有找到TemporaryASP.NETFiles这个文件夹于是只有自己想办法方法3.在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\文件夹下新建一个TemporaryASP.NETFiles这个文件夹然后右键-->属性-->安全,将其NETWORKSERVICE用户的权限设置为‘修改’。保存。重启IIS,访问页面,显示正常。Q8:写拒绝访问错误的解决办法解决方案:在iis里,把1.0改成2.0打开IIS,然后按图示方法设置此外:把c:\windows\temp文件夹,设为administor完全,Networkservice(如果是win2000则是用户)的权限加上就行,user可写iis进程用户可写就行了。具体是点右键属性,安全,下面不用我说了吧。Q9:浅析ASP.NET访问权限本文介绍要将ASP.NET访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。.aspx页面form代码:<form
id="form1"
runat="server">
<div>
<asp:Button
ID="Button1"
runat="server"
Text="Button"
OnClick=
"Button1_Click"
/><asp:FileUpload
ID="FileUpload1"
runat="server"
/>
</div>
</form>
Button1的Click事件代码:this.FileUpload1.SaveAs(Server.MapPath("."));
出现如下错误:“/linkupload”应用程序中的服务器错误。
对路径“D:\HL\上传下载\linkupload”的访问被拒绝。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.UnauthorizedAccessException:对路径“D:\HL\上传下载\linkupload”的访问被拒绝。ASP.NET访问权限未被授权所请求的资源。请考虑授予ASP.NET请求标识访问此资源的权限。ASP.NET有一个在应用程序没有模拟时使用的基进程标识(通常,在IIS5上为{MACHINE}\ASPNET,在IIS6上为网络服务)。如果应用程序正在通过<identityimpersonate="true"/>模拟,则标识将为匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户。要将ASP.NET访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示ASP.NET帐户,选中所需ASP.NET访问权限对应的框。源错误:只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求URL:在产生错误的文件的顶部添加一条“Debug=true”指令。例如:<%@
Page
Language="C#"
Debug="true"
%>
或:
2.
将以下的节添加到应用程序的配置文件中:
<configuration>
<system.web>
<compilation
debug="true"/>
</system.web>
</configuration>
请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。重要事项:以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。以上介绍ASP.NET访问权限。Q10:menu子菜单不显示问题描述:menu子菜单不显示,是在Item属性里编辑的。在别人的电脑上可以显示,我的电脑上就不可以?原因分析:已经知道是什么问题了。浏览器不同造成的差异,在IE8上Menu控件会出现异常。GoogleChrome下也不能正常显示动态Menu。可参考这篇文章:/blodfox777/archive/2008/09/08/1286582.html解决方案:aspnet的menu控件,可以自动生成下拉菜单,并且提供了很多的样式,在开发企业级的网站应用时,提供了很大的方便。但是,在ie8中出现了一个问题,就是只能正常显示静态的菜单,而动态的菜单,只出现一个白色的背景,其他的什么也看不见。这种现象只在ie8中出现。经过调试ie8,打开ie8->页面兼容性视图设置-勾选【在兼容性视图中显示所有网站】,解决了问题。其实还是不晓得为什么Q11:Request对象与Response对象Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。Request对象的语法如下:Request[.collectionlpropertylmethod](variable)collection集合clientcertificate得到在HTTP请求中传递在客户端认证域的值cookies使用此集合,可得到cookies值form得到form对象中元素的值querystring得到变量的值servervariables得到预置的环境变量的值property属性totalbytes(只读)指定从客户端传递总字节数buffer表明页面输出是否有缓冲cachecontrol决定代理服务器是否能够对asp的输出进行快取property属性charset字符集contenttype指定response的HTTP内容类型expires定义一个浏览器缓存中的页面在多长时间后过期expiresabsolute定义一个浏览器缓存中的页面什么日期时间后过期isclientconnected用户是否连接到服务器pics设置pics-labelresponse标题的值,标示pics内容等级status由服务器返回的状态行method方法binaryread得到从客户端传给服务器端的数据1.Request对象是ASP中常用的对象,用于获取客户端的信息,可以使用Request对象访问任何基于HTTP请求传递的所有信息。通过Request对象能够获得客户端发送给服务器的信息,不能将服务器端的数据发送给客户端的浏览器。Request对象的属性TotalBytes的功能是取得客户端响应数据字节大小。Request对象的方法BinaryRead的功能是以二进制方式读取客户端post的数据。Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。Response对象只提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则创建它。若存在,则将自动进行更新。结果返回给客户端浏览器。语法格式:Response.Cookies(CookieName)[(key)|.attribute]=value。这里的CookiesName是指定的Cookie的名称,如果指定了Key,则该Cookie就是一个字典,Attribute属性包括Domain,Expires,HasKeys,Path,Secure。response对象在ASP中负责将信息传递给用户.Response对象用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器中,使用Response对象可以直接发送信息给浏览器,重定向浏览器到另一个URL或设置cookie的值等.Response对象在asp编程中非常广泛,也是一种非常好用的工具.基本格式:response.集合|属性|方法response的write方法:response.write**功能:向客户端发送浏览器能够处理的各种数据,包括:html代码,脚本程序等.实例:response.write"ILOVEYOU!!"response的redirect方法:response.redirect("url")的作用是在服务器端重定向于另一个网页。实例:response.redirect()●JSP中的response在JavaServlet中同样用到response对象,是J2EE中java.servlet.http包中的类HttpServletResponseresponse实例化后将用此对象响应客户端的请求使用HttpServletResponseresponse的示例代码:importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassServletTestextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=gbk");PrintWriterout=response.getWriter();out.println("HttpServletResponseresponse");//方法示例..详细方法可以继续补充response.addCookie(arg0);response.addDateHeader(arg0,arg1);response.addHeader(arg0,arg1);out.flush();out.close();}}语法:Response.collection|property|method一、集合Response对象只有一个集合--Cookies,Cookies数据集合允许将数据设置在客户端的浏览器中。若指定的cookie不存在,则创建它。若存在,则自动更新数据。语法:Response.Cookies(Cookie)[Key.Attribute]这里的cookie是指定cookie的名称。而如果指定了key,则该cookie就是一个字典。attribute指定cookie自身的有关信息。attribute参数可以是下列之一:Domain只写。若被指定,则cookie将被发送到对该域的请求中去。Expires只写。指定cookie的过期日期。为了在会话结束后将cookie存储在客户端磁盘上,必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后cookie将到期。HasKeys只读。指定cookie是否包含关键字。Path只写。若被指定,则cookie将只发送到对该路径的请求中。如果未设置该属性,则使用应用程序的路径。Secure只写。指定Cookie是否安全。二、方法Response.AddHeaderName,Value向应答中添加一个新的HTML标题。Name为新HTML标题的名称。Value为该头变量的值。你可以添加任何名称和任何值的HTML标题。它并不替代现有的同名标题。一旦标题被添加,将不能删除。Response.AppendToLogString向Web服务器的日志条目的末尾添加一字符串。String为要添加到日志文件中的字符串。Response.BinaryWriteData该方法可以不经任何字符转换就将制定的信息写到HTTP输出,主要用于写非字符串信息(如客户端应用程序所需的二进制数据等)。Data是要发送的数据。Response.Clear删除缓冲区的所有HTML输出,但只删除响应正文而不删除响应标题。可以用该方法处理错误情况。需要注意的是,如果Response.Buffer设置为True,则该方法将导致运行是错误。Response.End强迫Web服务器停止执行更多的脚本,并发送当前结果,文件中剩余的内容将不被处理。如果Response.Buffer设置为True,则调用Response.end将缓冲输出。Response.Flush对于一个缓冲的回应,发送所有的缓冲信息。如果Response.Buffer设置为True,则该方法将导致运行是错误。Response.RedirectURL将客户端的浏览器重定向到一个新的Internet地址。Url为新网页的Internet地址。Response.WriteVariantResponse.Write是Response对象最常用的方法,该方法可以向浏览器发送字符串。Variant是一字符串或一个具有字符串值的变量。三、属性Response.Buffer缓冲一ActiveServerPage。回应只到某一页结束或Response.Flush或Response.End方法调用时才发送出去。服务器将输出送给客户端后就不能再设置Buffer属性。Response.CacheControl指明是否Proxy服务器能缓存ActiveServerPage。缺省时,其值为FALSE。当设置其属性为Public时,Proxy服务器可以缓冲由Asp产生的输出。Response.CharSet(Charsetname)将字符集名称(如GB)附加到Response对象中content-type标题的后面,用来设置web服务器响应给客户端的文件字符编码。一个可能的值为“ISO_LATIN_1”。Response.ContentType指明回应内容的类型。可能的值为text/plain和image/GIF,默认值text/HTML。Response.Expires浏览器可以缓存当前页的时间长度,以分钟为单位。Response.ExpiresAbsolute浏览器不能再缓存当前页的日期和时间。在未到期之前,可以返回。如果未指定时间,该主页在当天午夜到期;如果未指定日期,则到当天指定时间到期。True/False=Response.IsClientConnected属性为只读,指明自上次调用Response.Write之后,客户端是否仍然和服务器连接。该属性允许用户在客户端和服务器没有联接的情况下有更多的控制。例如,在从客户端提出请求起到服务器做出相应,其间要用去很长一段时间的情况下,这就可能有助于确保在继续处理脚本之前客户端仍是连通的。具有值TRUE或FALSE。Response.PICS(PICS字符串)用于添加网页的PICS等级。PICS级别指明某一网页的内容级别,比如暴力或色情的程度等。Response.Status="状态描述字符串"用来设置Web服务器要响应的状态行的值。Q12:在应用程序级别之外使用注册…的节是错误的在应用程序级别之外使用注册为allowDefinition='MachineToApplication'的节是错误的若IIS中没有应用程序名,先创建!
若还不行
把C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config中的allowDefinition='MachineToApplication'改为allowDefinition='EveryWhere'
或者把web.config中authentication的
mode="None
关于“在应用程序级别之外使用注册为allowDefinition='MachineToApplication'”的错误1、起因:要让一个web程序的根目录下的文件可以自由访问,admin目录下的文件只有通过验证后的用户才能访问。用VS2005+2.0调试时,在根目录下的一个子目录(即:admin)的web.config文件里配置了<authenticationmode="Forms">
<formsloginUrl="~/admin/login.aspx"name="login"
/>
</authentication>运行时发生错误:错误21在应用程序级别之外使用注册为allowDefinition='MachineToApplication'的节是错误的。如果在IIS中没有将虚拟目录配置为应用程序,则可能导致此错误。E:\ProgramFiles\vs2005project\webapp1\admin\Web.config12
原因:Machine.config里的allowDefinition="MachineToApplication"。
解决1:把allowDefinition设为:Everywhere。考虑到最好不要改动Machine.config文件,否则可能会引起其他错误。
解决2:是应用级别的,不能在子目录级别的web.config内设置,把它放在应用级别的web.config里,在子目录下用节来控制访问。即:<system.web>
<authorization>
<denyusers="?"/>
</authorization>
</system.web>根目录下的web.config:<authenticationmode="Forms">
<formsloginUrl="~/admin/login.aspx"name="login"
/>
</authentication>
<authorization>
<allowusers="*"/>
</authorization>解决3:在网站对应的虚拟目录上右键,选属性,然后在应用程序名后点创建。
我按他们说的找没找到,最终我理解就是
把你的虚拟目录指向web.config所在在文件夹,因为web.config的某些配置节只能出现在网站的虚拟目录跟目录中。如果:先装了.NET2005,后装IIS,程序在.NET下运行正常,在IIS里报错:服务器应用程序不可用解决方法:cmd到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727运行aspnet_regiis.exe空格-i会显示开始安装ASP.NET,安装完毕后问题解决.Q13:验证(XHTML1.0Transitional):属性“align”被视为已过时2验证(XHTML1.0Transitional):属性“align”被视为已过时。建议使用较新的构造。
即使用<divalign="left"></div>时出现的提示信息
解决办法:
style="text-align:center"
即<divstyle="text-align:left"></div>
用VS2005做网页的时候老是提示警告,属性“border”被视为已过时,建议使用较新的构造的处理办法,虽然没有什么大碍但是总是看了不舒服。
一、我的语句中如下写border="0",将上面语句修改成如下即可解决问题。
style="border:0"
二、同样在<map
name="Map"id="Map">这句中提示name过时,直接将name="Map"去掉即可:<map
id="Map">
三、属性“xxx”被视为已过时,建议使用较新的构造。
原因:由于VisualStudio(VS)2005把html规范化了,很多属性从2003转到2005时都出现这种警告,但不是错误;在2005中建议多使用样式(style),这样会使编程更规范化!比如:以前<bodybgcolor="#ffffff">就会出现“属性‘bgcolor’被视为已过时。建议使用较新的构造”,这是因为bgcolor不是xhtml的定义。改为<bodystyle="background:#000;">就可以解决了!
四、<tablealign="center">转换为<tablestyle="text-align:center">Q14:ImageMap控件ImageMap控件是一个让你可以在图片上定义热点(HotSpot)区域的服务器控件。用户可以通过点击这些热点区域进行回发(PostBack)操作或者定向(Navigate)到某个URL位址。该控件一般用在需要对某张图片的局部范围进行互动操作时,其主要属性有HotSpotMode、HotSpots和主要操作Click。
?HotSpotMode:顾名思义为热点模式,对应枚举类型System.Web.UI.WebControls.HotSpotMode。其选项及说明如下:
1)NotSet:未设置项。虽然名为未设置,但其实默认情况下会执行定向操作,定向到你指定的URL位址去。如果你未指定URL位址,那默认将定向到自己的Web应用程序根目录。
2)Navigate:定向操作项。定向到指定的URL位址去。如果你未指定URL位址,那默认将定向到自己的Web应用程序根目录。
3)PostBack:回发操作项。点击热点区域后,将执行后部的Click事件。
4)Inactive:无任何操作,即此时形同一张没有热点区域的普通图片。
?HotSpots:该属性对应着System.Web.UI.WebControls.HotSpot对象集合。HotSpot类是一个抽象类,它之下有CircleHotSpot(圆形热区)、RectangleHotSpot(方形热区)和PolygonHotSpot(多边形热区)三个子类。实际应用中,都可以使用上面三种类型来定制图片的热点区域。如果需要使用到自定义的热点区域类型时,该类型必须继承HotSpot抽象类。下面即有个自定义的菱形热区DiamondHotSpot范例可以参考。
?Click:对热点区域的点击操作。通常在HotSpotMode为PostBack时用到。
对ImageMap控件有了以上一个基本了解后,接着看ASP.NETQuickStart提供个两个应用示例和最后一个自定义菱形热区示例就会有所体会了。ImageMap控件是一个让你可以在图片上定义热点(HotSpot)区域的服务器控件。用户可以通过点击这些热点区域进行回发(PostBack)操作或者定向(Navigate)到某个URL位址。该控件一般用在需要对某张图片的局部范围进行互动操作时,其主要属性有HotSpotMode、HotSpots和主要操作Click。
HotSpotMode:顾名思义为热点模式,对应枚举类型System.Web.UI.WebControls.HotSpotMode。其选项及说明如下:1)
NotSet:未设置项。虽然名为未设置,但其实默认情况下会执行定向操作,定向到你指定的URL位址去。如果你未指定URL位址,那默认将定向到自己的Web应用程序根目录。2)
Navigate:定向操作项。定向到指定的URL位址去。如果你未指定URL位址,那默认将定向到自己的Web应用程序根目录。3)
PostBack:回发操作项。点击热点区域后,将执行后部的Click事件。4)
Inactive:无任何操作,即此时形同一张没有热点区域的普通图片。
HotSpots:该属性对应着System.Web.UI.WebControls.HotSpot对象集合。HotSpot类是一个抽象类,它之下有CircleHotSpot(圆形热区)、RectangleHotSpot(方形热区)和PolygonHotSpot(多边形热区)三个子类。实际应用中,都可以使用上面三种类型来定制图片的热点区域。如果需要使用到自定义的热点区域类型时,该类型必须继承HotSpot抽象类。下面即有个自定义的菱形热区DiamondHotSpot范例可以参考。
Click:对热点区域的点击操作。通常在HotSpotMode为PostBack时用到。对ImageMap控件有了以上一个基本了解后,接着看ASP.NETQuickStart提供个两个应用示例和最后一个自定义菱形热区示例就会有所体会了。示例一:ImageMap多种HotSpotMode示例<%@PageLanguage="C#"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN""/TR/xhtml11/DTD/xhtml11.dtd"><scriptrunat="server"></script><htmlxmlns="/1999/xhtml"><headrunat="server"><title>UntitledPage</title></head><body><formid="form1"runat="server"><div><h3><fontface="Verdana">ImageMap多种HotSpotMode示例</font></h3><asp:imagemapid="Buttons"imageurl="hotspot.jpg"alternatetext="Navigatebuttons"runat="Server"><asp:RectangleHotSpothotspotmode="Navigate"NavigateUrl="navigate1.htm"alternatetext="Button1"top="30"left="175"bottom="110"right="355"></asp:RectangleHotSpot><asp:RectangleHotSpothotspotmode="Navigate"NavigateUrl="navigate2.htm"alternatetext="Button2"top="155"left="175"bottom="240"right="355"></asp:RectangleHotSpot><asp:RectangleHotSpothotspotmode="Navigate"NavigateUrl="navigate3.htm"alternatetext="Button3"top="285"left="175"bottom="365"right="355"></asp:RectangleHotSpot></asp:imagemap></div></form></body></html>示例二:ImageMapPostBack模型示例<%@PageLanguage="C#"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN""/TR/xhtml11/DTD/xhtml11.dtd"><scriptrunat="server">voidButtons_Clicked(objectsender,ImageMapEventArgse){label1.Text=e.PostBackValue+"clicked!";}</script><htmlxmlns="/1999/xhtml"><headrunat="server"><title>UntitledPage</title></head><body><formid="form1"runat="server"><div><h3><fontface="Verdana">ImageMapPostBack模型示例</font></h3><asp:imagemapid="Buttons"imageurl="hotspot.jpg"alternatetext="Navigatebuttons"hotspotmode="Postback"onclick="Buttons_Clicked"runat="Server"><asp:RectangleHotSpothotspotmode="Postback"postbackvalue="Button1"alternatetext="Button1"top="30"left="175"bottom="110"right="355"></asp:RectangleHotSpot><asp:RectangleHotSpothotspotmode="Postback"postbackvalue="Button2"alternatetext="Button2"top="155"left="175"bottom="240"right="355"></asp:RectangleHotSpot><asp:RectangleHotSpothotspotmode="Postback"postbackvalue="Button3"alternatetext="Button3"top="285"left="175"bottom="365"right="355"></asp:RectangleHotSpot><asp:RectangleHotSpothotspotmode="Postback"postbackvalue="Background"alternatetext="Background"top="0"left="0"bottom="390"right="540"></asp:RectangleHotSpot></asp:imagemap><p><h3><fontface="verdana"><asp:LabelID="label1"runat="server"></asp:Label></font></h3></p></div></form></body></html>示例三:自定义热点区域DiamondHotSpot菱形热点区域1.
创建DiamondHotSpot类usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;namespaceHotSpotTest{publicclassDiamondHotSpot:System.Web.UI.WebControls.HotSpot{publicintCenterX{get{objectval=ViewState["centerx"];if(val==null)return0;elsereturn(int)val;}set{ViewState["centerx"]=value;}}publicintCenterY{get{objectval=ViewState["centery"];if(val==null)return0;elsereturn(int)val;}set{ViewState["centery"]=value;}}publicintWidth{get{objectval=ViewState["width"];if(val==null)return0;elsereturn(int)val;}set{ViewState["width"]=value;}}publicintHeight{get{objectval=ViewState["height"];if(val==null)return0;elsereturn(int)val;}set{ViewState["height"]=value;}}protectedoverridestringMarkupName{get{return"poly";}}publicoverridestringGetCoordinates(){returnCenterX.ToString()+","+(CenterY-Height/2).ToString()+","+(CenterX+Width/2).ToString()+","+CenterY.ToString()+","+CenterX.ToString()+","+(CenterY+Height/2).ToString()+","+(CenterX-Width/2).ToString()+","+CenterY.ToString();}}}2.
在页面写Register指令<%@RegisterTagPrefix="HotSpotTest"Namespace="HotSpotTest"%>3.
在后部代码里动态添加菱形热区,或者直接在页面代码里声明菱形热区
后部代码动态添加:protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){HotSpotTest.DiamondHotSpotdhs=newHotSpotTest.DiamondHotSpot();dhs.CenterX=100;dhs.CenterY=50;dhs.Height=100;dhs.Width=50;ImageMap1.HotSpots.Add(dhs);}}
页面代码声明:<asp:ImageMapID="ImageMap1"runat="server"ImageUrl="hotspot.jpg"HotSpotMode="PostBack"><HotSpotTest:DiamondHotSpotCenterX="100"CenterY="50"Height="100"Width="50"/></asp:ImageMap>[总结]:在大部分Web应用中可能很少会用到ImageMap,但正因为有了ImageMap,才让Web应用更加多姿多彩。有了ImageMap,我们可以动态的在一张图片中的某个局部范围内进行相应的处理请求的梦想再也不遥远。参考及引用资料列表:1.
/QUICKSTART/aspnet/doc/ctrlref/standard/imagemap.aspx2.
/dannychen/archive/2005/04/11/399873.aspx3.
MSDNLibraryforVisualStudio2005beta2Q15:委托概述委托是C#中新加入的一个类型,可以把它想作一个和Class类似的一种类型,和使用类相似,使用一个委托时,需要两个步骤,首先你要定义一个委托,就像是定义一个类一样;然后,你可以创建一个或多个该委托的实例。定义一个委托的语法是这样的:[public/protected/private]delegatereturnTypedelegateName(paramtypeparam1,…)这是我自己写的,看起来好像有点怪怪的,我来解释一下,private/protected/private是限定词,就不多说了,delegate是申明一个委托的关键词,returnType是一个返回类型,delegateName是一个你给委托起的名字,你可以写任何一个你喜欢的名字,paramtypeparam1…这个是参数列表。说了这么多可能看起来还是不是很好理解,我是这样认为的,实用点来讲,委托定义就是在一个函数定义中间加入一个delegate的关键词。它的作用类似于你申明一个类:publicclassClassName{…}创建一个委托的实例:[public/protected/private]delegateNamedeleInstanceName=newdelegateName(MethodName)这个类似于实例化一个类,publicClassNameinstancename=newClassName(…),这里有个要注意的地方,即MethodName方法要和delegateName的签名一致。什么是签名一致,就是说MethodName的参数列表,返回值要分别和returnType、(paramtypeparam1,…)一致。举个例子来说明下:publicdelegatestringDelegateDemo(stringname,intage);比如我们如上定义了一个委托,就写法来说,其实就是在函数stringDelegateDemo(stringname,intage)前面加了一个delegate的关键字,下面我们来用创建一个函数:publicstringAgentDemo(stringname,intage){stringrev=“”;…returnrev;}这个函数是做参数传递给一个DelegateDemo实例的,接下来创建一个DelegateDemo的实例:DelegateNameinstanceDemo=newDelegateName(AgentDemo);这时要说到一致了,即AgentDemo和声明委托时的DelegateDemo(我们姑且将delegate去掉)这两个函数的返回值,参数列表要相同。终于说完了,不知道看的人明不明白。接下来,我们可以使用这个委托了(调用一个委托),如下:stringname=“cshape”;intage=20;instanceDemo(name,age);当instanceDemo执行时,会执行AgentDemo函数,instanceDemo相当于C里的一个函数指针,现在这个指针指向AgentDemo的函数入口地址。2.多点委托前面提到的委托都只包含对一个方法的调用,如果需要调用多个方法,需要多次显示的调用这个委托,我们还有另的选择,我们可以让一个委托中包含多个方法,这样我们一次显示调用委托,就可以按照顺序连续的调用多个方法。看下面的例子:publicdelegatevoidMultiDelegate(stringname);publicvoidAgentDemo1(stringstr){Console.WriteLine(str+“thisisAgentDemo1\n”);}publicvoidAgentDemo2(strings){Console.WriteLine(s+“thisisAgentDemo2\n”);}MultiDelegatemultiDemo=newMultiDelegate(AgentDemo1);multiDemo+=newMultiDelegate(AgentDemo2);multiDemo(“multiDemotest:”);输出的结果应该是:multiDemotest:thisisAgentDemo1mutliDemotest:thisisAgentDemo2可以看到我们一次显示的调用一个委托,它顺序的(按照你添加方法的顺序)执行了方法AgentDemo1和AgentDemo2。这里要注意的有几点:●委托支持+=,-=这样的运算符,对应为添加或去掉一个方法●多点委托不可以定义有返回值,因为无法处理多个方法的返回值,所以如果要使用多点委托,应该用void,否则你的编译会返回一个错误●多点委托不建议你的参数列表中有OUT的类型,这样只会out最后一个方法的值,其他的值会丢失。3.委托的理解首先申明,这只是我举的一个例子,目的是帮助理解委托的过程,其中很多地方都经不起推敲,望大家知悉。言归
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养殖业创新发展战略3篇
- 工伤补偿协议3篇
- 创业指导劳动合同范本3篇
- 合伙经营货车合同3篇
- 居间合同的变更协议3篇
- 国际贸易拓展拓展国际市场的策略3篇
- 宿舍卫生干净我们3篇
- 付款代表委托3篇
- 户口代办授权协议格式3篇
- 实验室责任书范本3篇
- YY/T 0655-2024干式化学分析仪
- 中华民族共同体概论课件专家版2第二讲 树立正确的中华民族历史观
- 四年级四年级下册阅读理解100篇及答案经典
- 中职对口升学复习资料:《汽车机械基础》试题库+答案
- 部编版语文五年级下册第六单元整体教学设计教案
- 平面变压器设计与仿真
- 合作取得更大的成功辩论稿范文六篇
- 相关方需求和期望识别评价表
- 西南科技大学井巷工程课程设计样本
- 某化妆品牌案例分析
- 循环水管道施工组织设计
评论
0/150
提交评论