日期:2014-05-16  浏览次数:21339 次

如何让IIS返回一个自定义字符串,而不是定向到htm页面。
我在IIS设置了最大访问数量,当超过最大访问数量的时候,就向调用方返回一个xml的字符串(只是一个字符串,而不是一个403..的htm 页面)。
当调用方超过了最大访问数量的时候就会得到IIS的一个WebException的异常,内容是服务器不可用的异常。
我现在想当超过最大访问数量的时候不出现这个异常,而是直接返回一个xml字符串给调用方(不是把xml写在一个htm里面),调用方也不会chatch这个异常。

------解决方案--------------------
不清楚你的最大访问数量是怎么设置的。
如果在IIS上面配置的最大连接数的话,我想它是不应该返回WebException的

如果是在ASP.NET的配置文件里面设置的话(我还不知道怎么设置),它有可能会抛出WebException。而你本身可以在Global.asax里面做一下Error handling(http://msdn.microsoft.com/en-us/library/aa479319.aspx),把请求转向到某一个自定义的Err.aspx页面。在这个页面上的Page_Load里写类似于Response.write("<xml>....</xml>")这样的代码。

如果返回的是IIS的标准错误的话(403.9错误),那么你同样也可以把这个错误页面配置到你的Err.aspx页面。
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/80cb8d8d-8fd8-4af5-bb3b-4d11fff3ab9c.mspx?mfr=true

当然你也可以用ASP来写这个错误页面
http://msdn.microsoft.com/en-us/library/ms524952.aspx