2010-09-19 243 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