Edi Wang

All Posts 301


用Web.Config保存设置导致网站不定时重启的问题

前几天写了篇ASP.NET读写Web.Config,之后我确实用了文中的方法,重写了我网站的配置模块。结果上线之后,却发现网站时不时地重启,非常诡异。研究之后,我发现只要是对Web.Config做修改,就会使IIS重启网站,它不是立即重启的,似乎和GC一样有个阀值。然而我的设置必须保存在Web.Config中,这可肿么办?经过一番Google,终于找到了解决方案,现在似乎已经修复网站重启的问题了。方法是,把Web.Config的appSettings节点里的配置信息写到另一个文件中,然后设置appSetting节点的configSource属性,指向那个config文件即可。具体写法如下(摘自原作者博客):Web.config中appSettings节有个属性:configSource,这个属性可以指定一个存储appSettings的外部文件路径(只支持相对路径),而这个外部文件的修改是不...

Web.Config

ASP.NET读写Web.Config

先说下,我写的很多技术类文章都是面向初学者的,为了便于他们理解,我会写的尽量详细,包括很多最基础的操作步骤,并且有些说法可能不太严谨,高手请勿追究。如果写的太专业,不仅没人看我的博客,我还会被喷装B。请高手们原谅。以前我做网站设置模块的时候,总喜欢把设置都写在一个xml文件里,然后用程序去读写这个xml文件。虽然.NET对XML的支持很好(现在有Linq To XML了),并且我也使用了一个XML工具类,但总体来说,自己手动读写一个xml文件,还是有点蛋疼的。一不小心就容易出错。今天我突然想到,我们曾经无数次在Web.Config里读取过连接字符串,那么为何不把网站的设置信息也保存在Web.Config中呢?只要使用System.Configuration下的ConfigurationManager类就可以操作Web.Config了,微软都给我们封装好了!为了验证这一点的可行性,我写了一个...

ASP.NET Web.Config

ASP.NET GridView超链接列取值

场景:开发一个简单的Web文件管理功能,第一列是指向文件的超链接,最后一列放一个删除按钮。现在要求按删除按钮后,删除对应的文件。思路:获取当前行的第一列的值,然后调用File.Delete()方法。按照以往的写法,我们会在GridView的SelectedIndexChanged事件中,先找到当前行:int i = GridView1.SelectedIndex;然后通过 GridView1.Rows[i].Cells[0].Text来访问当前行第一列的数据。但是,如果不幸遇到超链接列,这种写法取出的缺是空串。我研究了好久,最后发现,HyperLink Field在GridView中要当作Web Control来处理。所以必须先转换为HyperLink,然后才能访问其Text属性。写法如下:((HyperLink)GridView1.Rows[i].Cells[0].Controls[0]...

ASP.NET GridView 超链接

IIS7启用Windows身份验证的办法

最近因为工作需要,在PC上用IIS建了个简单的文件服务器(启用目录浏览),但这样的服务需要安全验证,我不能让每个人都可以访问我的文件。我记得以前在IIS5、IIS6里,是可以设置身份验证方式的,只要去掉匿名访问,打开网站的时候就需要输入IIS服务器上的用户名和密码。 然而换了Windows7之后,我没有注意过这个功能,直到今天才发现,Win7里的IIS7.5,默认是不带Windows身份验证的。如果把匿名身份验证关闭的话,访问网站会直接失败,而不是弹出登录框。 经过一番研究,终于发现了开启Windows身份验证的办法:控制面板-程序和功能-打开和关闭Windows功能-Internet信息服务-万维网服务-安全性,选择Windows身份验证。 然后,回到你的IIS控制台。选择要进行身份验证的网站。在身份验证中,将Windows身份验证启用,其他全部禁用。 大功告成:...

IIS7 匿名访问 Authentication

ASP.NET Repeater控件绑定List<T>泛型的写法

我们在开发分成架构的Web应用程序时,常常把数据库中的记录放到一个List中,做到了良好的封装。调用业务逻辑的程序猿也无需知道库表结构就可以直接使用“Model.属性”来访问各个字段的数据了。但在做显示的时候,初学者可能会碰到一些问题。以往大家在显示控件(如Repeater)上绑定的都是DataSet,ASPX页面里写的是“”。那如何绑定一个List泛型呢?其实,Repeater控件是支持绑定到业务对象的,并且我们也不再用Eval表达式了。看一个例子: 后台代码: GeekStudio.BLL.Blog optBlog = new GeekStudio.BLL.Blog(); Repeater1.DataSource = optBlog.GetModelList(); Repeater1.DataBind(); 其中,GetModelList()返回的是一个List。我们可以...

ASP.NET List<T> Repeater 泛型 数据绑定

C#获取进程、查找并结束进程

最近看到一个考试系统,有个功能是用来监视进程的。一旦发现如Communicator.exe这样的违禁软件就立即杀死进程并上报给服务器。我稍微研究了一下,这个功能实现起来其实很简单。就是使用ManagementObjectSearcher获取进程列表,然后放在一个Collection里,之后就可以按照自己的逻辑去做了。 下面是一个例子:获取进程列表、创建“违禁”进程名单、查找并杀死进程。注意先要在项目里添加System.Management的引用。using System; using System.Management; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { /...

C# 进程

ASP.NET中GridView的多选、删除

我们在开发网站的时候,有个很常见的功能,就是要让GridView能够选择多项,然后一起删除。效果类似下面这张图,这是我网站后台管理页面中的一个GridView。其实制作这个效果不难,思路是:增加一个checkbox列,这个列的数据绑定到表的主键(比如Id),前台的代码可以在VS的可视化设计器中完成,你要做的仅仅只是增加一个CheckBox列。前台代码如下:...

ASP.NET GridView

让网站RSS源被浏览器自动识别的方法

最近本人在修改我的个人网站,其中一个目标就是要让IE/Firefox等支持RSS订阅的浏览器能自动找到我的RSS源(即让RSS按钮亮起)。查阅微软的资料后,发现方法很简单,只要一行代码就可以完成。 比如你的RSS源是:http://www.wyjexplorer.cn/RSS 那你只要在页面的节点中加入: 然后打开IE/Firefox再次访问这个页面。RSS按钮就会自动亮起!!!...

RSS 订阅 Browser

Infosys面试经历

今天上午本人参加了Infosys公司的实习生面试。写一下过程帮助大家了解一下情况~在这个面试之前,Infosys公司之前来我们学校做过一次宣讲会,是一个印度人讲的,说实话听不太懂,呵呵,当天就做了笔试,笔试一般是英语阅读理解题,还有一半是英文智力题,不难,就是考察一些逻辑思维和几何什么的。经过了笔试Infosys就会通知你去公司面试,在浦东软件园。很远就可以看见Infosys的大楼,到了之后先是签到,前台小姐会发给你一个Visitor的胸卡,然后就可以进去候场了。候场的时候,会填写一张表单,包括你的个人信息、工作经历(如果有)、还有你希望应聘的职位(对于我们这次,都应该写软件开发实训),不过我下手比较快,ASP.NET程序员已经写上去了- -!表格收上去以后就开始按照收的顺序逐个面试了。面试官有中国人也有印度人,如果只有中国人的话,可以讲中文,但如果有印度人在就一定要讲英文。至于面你的是中...

Infosys Interview

教你如何备份火狐浏览器(Firefox)的插件及设置

使用火狐的用户经常会安装自己喜欢的插件,并随心所欲更换界面、更改设置。这也是火狐的特色之一,可以打造最适合自己的浏览器。 然而,现在很多人不止拥有一台计算机。如果要再别的电脑上再安装一遍插件,并逐个调整设置,是非常麻烦的事。可惜火狐本身并没有提供插件备份的功能。最新版的火狐4也只是同步个人设置和书签而已。 下面我就教大家如何备份一切东西的办法(包括插件、个人设置、书签) 首先,在火狐的地址栏中输入about:support,会打开如下界面。 点击“打开所在文件夹”按钮,会弹出一个资源管理器,并且定位到你当前的Profile文件夹。 这个路径在Windows7中一般为:C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\随机字符串.default(XP等其他系统可能略有不同) 向上两层,定位到C:\U...

Firefox Profile Backup Plugin Firefox 设置