白天有雨

此处应该有掌声

导航

ASP.NET应用程序中的服务器错误(整理中)

1、无法验证数据:
    解决方法:在Page指令中设置禁止MAC(身份验证代码 ):
<% @ Page EnableViewStateMac="false">

   个人分析:当网页提交给本身时,服务器会通过MAC以检查视图的状态,看状态是否在客户端被更改.但这也就导至一个潜在的问题,即服务器端的状态一般保持时间很短,如果在服务器上状态消亡后再提交页面的话,就会造成MAC验证不通过,产生无法验证的错误提示.

   这个解决方法也存在很多麻烦,比如需要在每个提交给自身的页面加上这条指令.而且存在一些安全隐患,如有人恶意更改视图状态等.还望有谁能提供更佳的方案.

2、--  “/”应用程序中的服务器错误(winxp中的解决方法)
    1)、显示“安全”选项卡
          打开“控制面板”中的“文件夹选项”。
          单击“开始”,然后单击“控制面板”。
          双击“文件夹选项”。
          在“查看”选项卡上的“高级设置”下,清除“使用简单文件共享(推荐)”。 
    2)、在文件夹的安全选项卡中为你的站点文件夹增加aspnet用户
    3)、为此文件夹的users用户增加写入权利
3、项目调试时候,出现其中用到的一个组件“访问被拒绝”的解决方法
 
有时候,我们在调试ASP.net程序的时候,会很痛苦的碰到。某某组件访问被拒绝。这时候重起IIS,电脑注销都不起作用。这时候的错误信息一般类似如下的方式:

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 访问被拒绝:“CSDN.Authentication”。
源错误:
行 196:    <add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 197:    <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
行 198:    <add assembly="*"/>
行 199:   </assemblies>
行 200:  </compilation>

源文件: c:\windows\microsoft.net\framework\v1.1.4322\Config\machine.config    行: 198
程序集加载跟踪: 下列信息有助于确定程序集“CSDN.Authentication”无法加载的原因。
=== Pre-bind state information ===
LOG: DisplayName = CSDN.Authentication
 (Partial)
LOG: Appbase = file:///F:/MyDevelop/AD/Code/ADManageWeb
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
===
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: CSDN.Authentication
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/3151f96f/581ce000/CSDN.Authentication.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/3151f96f/581ce000/CSDN.Authentication/CSDN.Authentication.DLL.
LOG: Attempting download of new URL file:///F:/MyDevelop/AD/Code/ADManageWeb/bin/CSDN.Authentication.DLL.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: CSDN.Authentication, Version=1.0.1965.30523, Culture=neutral, PublicKeyToken=null
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300

其中最常见的原因是Indexing service服务引起的。解决方法就是停用Indexing service,或配置ASP.net 的临时目录不受Indexing service服务的影响。

配置ASP.net 的临时目录不受Indexing service服务的影响的步骤如下:

1、开始 -- 管理工具 -- 计算机管理(Win2003的位置,其他操作系统类似)打开计算机管理
2、展开计算机管理左边树中“服务和应用程序”节点,再在其下展开“索引服务”节点,再在其下展开“System”节点,再在其下展开“目录”节点。
3、在计算机管理的右边我们可以看到配置的索引服务目录。
4、在“目录”节点上右击鼠标,选择“新建”--“目录”
5、在“添加目录”对话框中,路经输入框中输入 ASP.net 的临时文件目录。默认应该是:
c:\<WINDIR>\Microsoft.NET\Framework\<Version Number>\Temporary ASP.NET Files  目录。
<Version Number> 指你要处理的.net版本。
6、在“包含在索引中吗?”选项中,选择“否”
7、单击“确定”按钮
8、在“索引服务”节点上右键单击,重起索引服务即可。
另一个方法:作一个项目,其中引用了第三方dll,在本地运行没有问题,但放到服务器上就抱错:访问被拒绝

首先我按照楼主的方法试验了一下,问题依旧,不论是停止索引服务还是对.net的
临时目录做处理,组件依然被拒绝访问.
于是我的解决方法是:将自己项目的dll和引用的dll,同时放到服务器上去,这样服务器上两个dll的更新时间是一样的,这样问题就解决了,不知道是什么原因,和时间有关系
另外,如果还不行,请考虑一下你引用的组件和你自己调试项目的版本问题,最好都是release版。

posted on 2005-08-23 16:53  卓如  阅读(3400)  评论(4编辑  收藏  举报