ASP.NET Web应用程序写EventLog出错的解决方案
最近在对应一个ASP.NET Web应用程序Bug的时候,为了调查运行环境中具体的Bug于是查阅了一下错误日志。
这个程序的错误日志是直接保存在一个文本文件中的,结果发现就算是出错也不会留下任何痕迹。
一调试,竟然是把错误日志的保存路径给写错了。My God!
把路径改了,转念一想下次出错再不保存怎么办?谁知道真正的环境里会出什么状况呢。
于是乎,出错了就直接把错误日志写到服务器的EventLog上吧。
三下五除二改完了就等着好消息呢。
可是左等右等还是没有日志留下来,Bug还是照旧。
一查,嘿,不让写EventLog。
网上一查,果然已经有前车之鉴。微软官方上也有解决方法。
按照第一个方法做了一下,改了服务器的注册表就好用了。
第二个就没尝试了。
解决问题的文章就摘下来做个经验保留。
地址:http://support.microsoft.com/?scid=kb;zh-cn;329291&spid=810&sid=58#appliesto
原文:
症状
使用 ASP.NET 在事件日志中创建一个新的事件源时,您可能会收到下面的错误信息:System.Security.SecurityException:Requested registry access is not allowed.
原因
默认情况下,ASP.NET 工作进程的用户令牌是 ASPNET(或者,对于 Internet 信息服务 [IIS] 6.0 上运行的应用程序是 NetworkService)。由于您的帐户不具有创建事件源的正确用户权限,会出现“症状”部分中的问题。
解决方案
警告
:注册表编辑器使用不当可导致严重问题,从而可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。
要解决此问题,在您运行 ASP.NET Web 应用程序之前,拥有管理权限的用户必须创建事件源。要创建事件源,请使用下列方法之一。
第一种方法
在注册表编辑器中,在应用程序
事件日志下创建一个事件源。为此,请执行下列步骤:
单击“开始”,然后单击“运行”。
在“打开”文本框中,键入 regedit
。
找到以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application
右键单击“Application”子项,指向“新建”,然后单击“项”。
键入 TEST
作为该项的名称。
关闭注册表编辑器。
第二种方法
System.Diagnostics 名称空间中的 EventLogInstaller
类允许您安装和配置一个事件日志,您的应用程序在运行时可以读取或
相关文档:
ASP.NET常见安全问题
一、SQL语句漏洞
许多程序员在用sql语句进行用户密码验证时是通过一个类似这样的语句来实现的:
Sql="Select * from 用户表 where 姓名 = '" + name + "' and 密码 = '" + password + "'"
通过分析可以发现,上述语句存在着致命的漏洞。当我们在用户名称中输入下面的字符串时:tes ......
一说到新闻系统的话,一定会谈到静态页面生成的,因为静态页面不但是读取速度快,而且又安全;
静态页面的生成不管是小到现在的企业网站大至网易,QQ等门户都用到了;
那么我们如何来生成静态页呢?
以什么方式生成静态页面呢……
在生成静态页面的时候有那些是要注意的呢:
静态页面命名
统一存放目录 ......
public static Boolean WriteTextFile(string content, string filepath,string name)
{
FileStream fs;
StreamWriter sw;
if (!System.IO.Directory.Exists(filepath))
{
DirectoryInfo DirInfo = Directory.CreateDirectory(filepath); //创建目录
DirI ......
WebRequest mywebrq;
WebResponse mywebresp;
StreamReader sr;
Streamwriter sw;
Private void Page_Load(object sender,EventArgs e) { mywebreq=WebRequest.Create( http://localhost/Test.aspx ); mywebresp=mywebreq.GetResponse();
sr=new streamReader(mywebresp.GetResponsestream());
strHtml=sr.ReadT ......
ASP.NET MVC 多语言解决方案()
就一个网站的多语言特性来说,我认为分为两个方面:
1、HTML界面上显示的文字需要多语言
2、HTML界面上JS输出的文字需要多语言
原来在HTML部分直接写的文字都不能直接写要输出的文字,而是要采用标记的方法来替换。JS也 ......