IIS6 中ASP上传文件大小限制为200K的问题:最近重新利用ASP弄个上传文件的程序,文件稍微一大点就一直提示上传失败。为了这个问题调试了一整天,后来才发现原来IIS6基于新的安全考虑,将上传文件大小默认设置为200K了(这也太小了点吧)。发现问题就比较容易解决问题了,到微软站点载了IIS6 Resource Kit Tools(http://www.microsoft.com/downloads/details.aspx?FamilyID=56FC92EE-A71A-4C73-B628-ADE629C89499&displaylang=en),安装后利用Metabase Explorer修改了(local)\LM\W3SVC\AspMaxRequestEntityAllowed属性(默认为200K=204800),修改为4M就是了;同时修改了AspScriptTimeout属性调整下时限,就可以上传大文件了。
关于VisualStudio.NET里调试出现的一系列问题,例如没有权限调试Web服务器,不属于Debugger Users组、无法调试等情况,都可以在The VS7 Debugger doesn’t work. What can I do(http://blogs.msdn.com/mkpark/articles/86872.aspx)该文上找到答案。
我就碰到过没有权限在Web服务器上调试的情况,后来选中了IE的Internet选项->安全->Intranet->自定义级别->用户验证的“自动使用当前用户和密码登录”才解决无法调试的问题。怎么会想到VS.NET无法调试还要修改IE选项。
没看《重构》这本书前,根本不知道什么叫重构。看了重构后,发现原来代码的写法习惯可以有这么多的讲究。看了前几章后,开始憧憬着现有的代码能经过重构后会散发出迷人的味道,那就太cool了。
听说VS2005里也将支持重构(另一份更详细的Refactoring in VS.NET Whidbey.PDF文档),而且不仅C#支持,VB.NET也支持,很期待。下面是一些.NET 重构的资源:
- .NET Refactoring Home:开发了一个C# Refactoring Tool for VS.NET 2003,支持Extract Method、Move Member等8种重构方法。
- Refactoring Home:在这里可以找到Jay Bazuzi 的VisualStudio Refactoring Blog,还有个ReSharper C# Tools,不过这个ReSharper没有上面的C# Refactoring Tool for VS.NET 2003好用。
- 除了C#外,还有个VB Refactoring Tool用于VB重构。
在 mike's web log 里看到一篇名为“How to Write a Bad Forum Post ”的随笔,我想对我们都很有参考价值。该文大致列举了在论坛发帖的15个坏毛病,其中第5条和第9条我是经常犯的,呵呵。而对于经常在CSDN等论坛上发问的同志们来说,个人觉得更是要看这文章不可。毕竟在提问前,先找找诸如MSDN的资源,搜索下论坛内的已有帖子,然后再google下,实在不行再发帖子问是一个很好的学习方法。当然,最后提问的技巧及解决问题途径也需要改进,经常在CSDN看到有的问题已经解决,然而问题的解决思路方法没有说出来,只是告诉大家“我已经搞定!”、“OK!想要答案发我Email”等等。发此感触,希望共勉。
在The Sells spout Blog那里,有个很有趣的争论:Avoid the GAC? That's a question。
一些资源:
1、“Improving .NET Application Performance and Scalability: Releases”的一个最新版本(Beta3)已经发布让人下载,这些都是很值得品味的好文档。
2、FxCop 1.30 提供下载。
3、What's New in System.Xml for Visual Studio 2005 and the .NET Framework 2.0 Release
经常在网络上四处载东西,有时碰到直接拷贝一个类似http://193.100.100.56/TestWebSolution/WebApplication1/test.rar地址准备下载test.rar文件时,却被告知没有登录或者直接跳转到其他页面的情况,然后等登录后直接下载该文件。要实现上面情况,在.NET世界里是比较容易的。
1、 首先创建一个类库项目ClassLibrary1,实现如下(点这里查看):
|
using System;
using System.Web; // 引用System.Web组件
namespace ClassLibrary1
{
public class MyHandler : IHttpHandler
{
public MyHandler()
{
}
#region IHttpHandler 成员
public void ProcessRequest(HttpContext context)
{
// 跳转到WebForm1.aspx,由WebForm1.aspx输出rar文件
HttpResponse response = context.Response;
response.Redirect("http://193.100.100.56/TestWebSolution/WebApplication1/WebForm1.aspx");
}
public bool IsReusable
{
get
{
// TODO: 添加 MyHandler.IsReusable getter 实现
return true;
}
}
#endregion
}
} |
2、 创建测试用的Web项目WebApplication1。在配置文件Web.config文件节点里增加如下节点:
<httpHandlers>
<add verb="*" path="*.rar" type="ClassLibrary1.MyHandler, ClassLibrary1" />
< SPAN>httpHandlers>
3、 在WebForm1.aspx里增加一个文本为“下载”的Button,其Click事件如下(点这里查看):
|
FileInfo file = new System.IO.FileInfo(@"G:\WebCenter\TestWebSolution\WebApplication1\test.rar");
// FileInfo 类在 System.IO 命名空间里
Response.Clear();
Response.AddHeader("Content-Disposition", "filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
string fileExtension = file.Extension;
// 根据文件后缀指定文件的Mime类型
switch (fileExtension)
{
case ".mp3":
Response.ContentType = "audio/mpeg3";
break;
case "mpeg":
Response.ContentType = "video/mpeg";
break;
case "jpg":
Response.ContentType = "image/jpeg";
break;
case "........等等":
Response.ContentType = "....";
break;
default:
Response.ContentType = "application/octet-stream";
break;
}
Response.WriteFile(file.FullName);
Response.End(); |
4、 最后一步就是在IIS里增加一个应用程序扩展。在“默认网站”->“属性”->“主目录”->“配置”。在弹出的“应用程序配置”窗口里按“添加”,在弹出的“添加/编辑应用程序扩展名映射”窗口里“可执行文件”选择C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,在扩展名里输入“.rar”,然后确定即可。
5、 在IE里输入http://193.100.100.56/TestWebSolution/WebApplication1/test.rar,会立即跳转到http://193.100.100.56/TestWebSolution/WebApplication1/WebForm1.aspx,然后按WebForm1.aspx的“下载”按钮就可以下载test.rar了。
6、 当然,这里只按例子给个思路,完全可以再根据自身情况扩展。下面有几个参考的资源文章:
l http://www.9seek.com/news/show.aspx?id=745&cid=12
l http://www.9seek.com/news/show.aspx?id=521&cid=12
l http://www.9seek.com/news/show.aspx?id=520&cid=12
l http://msdn.microsoft.com/asp.net/using/building/web/default.aspx?pull=/library/en-us/dnaspp/html/URLRewriting.asp