如题,通过IIS访问一般处理程序时,如果做到不带ashx后缀即可访问?
如:
http://localhost:8080/test.ashx可直通过http://localhost:8080/test即可访问。

解决方案 »

  1.   

    URL Rewrite
      

  2.   

    ashx通常是做接口或者处理过程用的。为什么还要折腾这个重写呢?
      

  3.   

    一个方式就是上面说的URL 重写,另外可以考虑用Asp.net MVC来做,路由机制,参考:https://msdn.microsoft.com/zh-cn/library/gg416514
      

  4.   

    asp.net4,也就是VS2010开始,webform也支持route了
      

  5.   

    用mvc搞。
      

  6.   

    路由,ASP.NET 也支持的。
      

  7.   


    是的,asp.net 不管是webform还是mvc,都支持路由。不过这个东西其实用不着路由。你在你的网站中创建一个 test 目录,然后里边放一个ashx,例如文件名为 default.ashx。网站配置为 default.ashx 是默认要执行的文件之一(与 index.html、default.aspx、default.asp 等一样都是默认文档)就可以了。
      

  8.   


    我非常赞同这样的开发设计基点。搞一些噱头,要知道目的是干嘛的,然后再搞。不要把那些东西说成是技术需要的,要知道花费大量时间和资源去搞那些东西,都是满足一些个别人的癖好,其实真正用起来有几个人关心你的网站下的某个服务地址的有没有 ashx 后缀?!
      

  9.   

    那为什么不用Web API?
      

  10.   

    http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module
      

  11.   

    ashx不清楚..但是aspx是可以的.只需要在Global.asax里面配置一下即可.
     void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes(System.Web.Routing.RouteTable.Routes);
        }
    static void RegisterRoutes(System.Web.Routing.RouteCollection routes)
        {
            routes.Ignore("{resource}.axd/{*pathInfo}");
            routes.MapPageRoute("user", "api/user/{par}", "~/api/user.aspx", false);
        }
    然后我就可以在user.aspx里面奔放了..当然了.前台aspx是没东西的.. 只有一句话.
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="user.aspx.cs" Inherits="api_user" %>
    后台就可以随意玩了.比如访问xxx.com/api/user/login  post过去username 跟password.进行登陆..
    var json= new System.IO.StreamReader(Request.InputStream).ReadToEnd();
    var user=发序列化<userinfo>(json);
    if(RouteData.Values["par"].ToString().ToLower()=="login")
    {
      //查询数据库.....
    }
      

  12.   

    webform可以用URL Rewrite重写
    一些伪静态网站的url其实就是重写来的
      

  13.   

    Hi 哥们 不太明白你为什么要这么做,带和不带有什么区别吗?如果你不想带任何后缀那你就用MVC restful 方式去搞,URL Rewrite 应该也可以做到,但这个是url重写机制 其实是掩人耳目的 。