2010-09-19 244 views
0

我有一个验证码在我的MVC应用程序从HttpHandler(.ashx)调用。问题captcha Asp.NET MVC

它在Visual Studio开发人员服务器中正常工作。

我只配置在Global.asax中:

 public static void RegisterRoutes(RouteCollection routes) 
     {  
      routes.IgnoreRoute("{filename}.ashx/{*pathInfo}");//captcha 

......... 

它忽略在Visual Studio开发者服务器的后续路径:

http://localhost:5011/captcha.ashx?id=2342556fgh767896sa 

问题是现在我在IIS 7中运行的应用程序。现在将被忽略的路径改为:

http://localhost/Sce/captcha.ashx?id=2342556fgh767896sa 

而且它没有工作了。

任何想法忽略新的道路?

UPDATE:

从来就解决了我的problem.Need添加处理程序在web.config中,但不是在<httpHandler> section.Must在<system.webserver>部分原因即时通讯使用IIS 7.0

+0

为什么你在ASP.NET MVC中使用HttpHandler? Actions/ActionFilters/ActionResults提供了在框架内完成所需的一切。 – tarn 2010-09-19 01:45:25

+0

,因为我不知道如何实施captcha没有handlers.I不想使用Recaptcha。 – ozsenegal 2010-09-19 01:46:10

+1

基本上你可以直接用HttpContext写一个自定义的动作结果,然后从一个动作返回它。这里是一个例子,可能有助于http://www.dotnetcurry.com/ShowArticle.aspx?ID=484 – tarn 2010-09-19 02:26:36

回答

2

添加您的web.config的​​部分的处理程序。

+0

你是正确的,我很抱歉。谢谢你! – ozsenegal 2010-09-19 03:45:37

1

如何:

routes.IgnoreRoute("{allashx}", new {[email protected]".*\.ashx(/.*)?"}); 

顺序很重要。把这首先放在你的控制器路由之前。

+0

它可以工作。但我猜它是正确的。必须是另一个问题。 – ozsenegal 2010-09-19 01:53:12