如何让IIS返回一个自定义字符串,而不是定向到htm页面。

nekiy 2010-01-15 10:52:30
我在IIS设置了最大访问数量,当超过最大访问数量的时候,就向调用方返回一个xml的字符串(只是一个字符串,而不是一个403..的htm 页面)。
当调用方超过了最大访问数量的时候就会得到IIS的一个WebException的异常,内容是服务器不可用的异常。
我现在想当超过最大访问数量的时候不出现这个异常,而是直接返回一个xml字符串给调用方(不是把xml写在一个htm里面),调用方也不会chatch这个异常。
...全文
106 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
archu 2010-01-15
  • 打赏
  • 举报
回复
补充一下:如果你真要在代码里面判断连接数的话,可以参考一下我在http://topic.csdn.net/u/20100114/17/c4a72e51-7e53-41dc-8078-0bf6f75fed09.html?54568里面提到的那些参考文档。
archu 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nekiy 的回复:]
我是在IIS里面设置的最大连接数,我设置的最大连接数是1,我用多线程访问这个webservice,那么调用方就会出现WebException的异常。
业务是这样的,一个webService提供一个二进制流的解析,正常的时候是给调用方返回一个里面含有xml格式的string,但是如果用户访问量非常大,那么IIS会拒绝请求,提示服务不可用的提示。但是我们业务要求当IIS超出最大访问量的时候,仍然返回一个XML的string,和正常情况保持一致,只是xml的内容是提示服务器超出最大访问数的。

假设webservice的方法定义为
public string HandleBinary(byte[])
但是如果IIS拒绝,是我的程序无法控制的,我需要IIS同样可以返回一个string给调用方。
[/Quote]

这个需求恐怕很难实现了,除非你自己在程序代码里面判断是否连接数已满。
nekiy 2010-01-15
  • 打赏
  • 举报
回复
我是在IIS里面设置的最大连接数,我设置的最大连接数是1,我用多线程访问这个webservice,那么调用方就会出现WebException的异常。
业务是这样的,一个webService提供一个二进制流的解析,正常的时候是给调用方返回一个里面含有xml格式的string,但是如果用户访问量非常大,那么IIS会拒绝请求,提示服务不可用的提示。但是我们业务要求当IIS超出最大访问量的时候,仍然返回一个XML的string,和正常情况保持一致,只是xml的内容是提示服务器超出最大访问数的。

假设webservice的方法定义为
public string HandleBinary(byte[])
但是如果IIS拒绝,是我的程序无法控制的,我需要IIS同样可以返回一个string给调用方。
archu 2010-01-15
  • 打赏
  • 举报
回复
不清楚你的最大访问数量是怎么设置的。
如果在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

8,329

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 IIS
社区管理员
  • IIS
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧