这几天我在用asp.net作arcgis server的开发。arcgis server提供了一些asp.net组件,我放上去,运行后,查看生成的网页的html代码,是这样的(部分):
<img id="ScaleBar1" Division="1" src="ESRI.Web.Controls.MIMEImage.aspx?ImgID=Default.aspx-ScaleBar1" border="0" style="height:20px;width:250px;Z-INDEX: 115; LEFT: 504px; POSITION: absolute; TOP: 528px" />可以看到,这是一个网页图片,其指向的地址是:http://localhost/ESRI.Web.Controls.MIMEImage.aspx?ImgID=Default.aspx-ScaleBar1可ESRI.Web.Controls.MIMEImage.aspx是什么呢?是一个网页吗?可是我在电脑中查了个遍,也没找到这个的一个网页啊?那它究竟在哪里??大哥们,赶快帮忙啊,我郁闷死了!

解决方案 »

  1.   

    你所说的那些asp.net组件是不是.dll格式,如果是,那就是在这个文件中了!
      

  2.   

    难道说这个aspx在组件dll里面(这样能行吗?),那IIS又是怎样访问到它的呢?
      

  3.   

    我能有办法知道它在哪个dll里面吗?
      

  4.   

    就是你拖放组件的那个.dll啊!
      

  5.   

    能不能解释清楚一点啊。我现在想知道两点:
    1、封装这个aspx页面的dll在哪里,能不能找到它?
    2、IIS又是怎么访问到这个aspx的?
      

  6.   

    但我用对象浏览器根本就看不到组件里面包含这样的一个aspx页啊
      

  7.   

    1、在虚拟目录下的BIN子目中。
    2、你用VS开发的WEB应用程序完成,可以把所有的*.cs或*.vb的源文件删除,但是仍然可以执行,这就是asp.net与ASP不同的地方啊!如果你清楚ASP或asp.net执行原理的话,你就应该知道这是由asp_nt.dll这个东东不完成解析的啊(用“解析”二字不知对不对,只是个人理解,请方家不要见笑)
      

  8.   

    1、Bin子目录下只有我写的TestArcgisServer.dll文件
    2、能不能再清楚一点,asp_nt.dll是怎样找到这个dll的?(它怎么知道这个dll存在?在哪里?)谢谢了!
      

  9.   

    找到你引用的那个控件的DLL...如果在你的目录下找不到ESRI.Web.Controls.MIMEImage.aspx这个文件,那么这个文件就是动态加载的,根据后面的ImageID参数来变化生成图片...你可以测试下,运行页面后,新建一个页面,输出ESRI.Web.Controls.MIMEImage.aspx这个地址,把参数加上去,或者修改一下,应该可以看到效果的变化...
      

  10.   

    ESRI.Web.Controls.MIMEImage.aspx加在任何虚拟目录后面都可以,只要这个虚拟目录是存在的,也是说,它是全局的。我在硬盘里搜索MIMEImage,连影子都找不到一个。我看了一下IIS的服务器扩展,也没有什么特别的东东。其它的全部停掉只剩asp.net支持还是可以运行。另每次执行时,都会在URL上生成一个很长的字符串,比如输入http://localhost/TestWebGis1/Default.aspx,显示完毕后,IE地址栏中显示的是
    http://localhost/TestWebGis1/(o0nwl055l2ir5i45xnmvg345)/Default.aspx,这又是怎么搞的?
      

  11.   

    arcgis没有用过,不清楚,
    我猜可能用到web自定义处理。
    ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemwebihttphandlerclasstopic.htm
      

  12.   

    aspx->cs->dll 
    楼主去看看吧,里面还有相关文章的链接的:
    http://tishifu.cnblogs.com/archive/2005/11/29/286546.html
    http://jjstar.cnblogs.com/archive/2005/11/11/274202.html
      

  13.   

    看看你的machine.config多了什么东西吗?
      

  14.   

    ESRI.Web.Controls.MIMEImage.aspx 
    这个是url重写要看程序,可能在web。config文件里面设置,自己看一下吧
      

  15.   

    看看在Global.aspx里面的protected void Application_BeginRequest(Object sender, EventArgs e)这个方法里面有没有处理url重写
      

  16.   

    1、把生成的全部dll文件拷贝到项目的bin目录下;
    2、在web.config中加入类似下面的配置节声明
    <httpHandlers>
        <add verb="*" path="WebForm1.aspx" type="ASP.WebForm1_aspx, srqmg4mo" />
    </httpHandlers>
    其中,
    srqmg4mo是生成的dll的程序集名称,我们得到的dll文件名和程序集名称相同;
    ASP.WebForm1_aspx是命名空间,统一为ASP.aspxFileName_aspx格式;
    WebForm1.aspx是我们要处理的aspx文件名做完这两步之后,就可以把所有的aspx都删掉了
      

  17.   

    多谢各位帮忙啊,尤其是 wang790809(石头) 兄和 Cnapollo兄!果然在machine.config中发现在相关的东东:
    <httpHandlers>
        <add verb="*" path="ESRI.Web.Controls.MIMEImage.aspx" type="ESRI.ArcGis.Server.WebControls.ImageHandler, ....." />具体是怎样的偶也不记得了(我现在在家里,没有代码),明天再仔细研究一下。多谢各位!
      

  18.   

    还要多谢 pontus兄,呵呵。
      

  19.   

    不一定要有这个aspx文件啊,web.config中的httpHandlers节点进行URL重定向
      

  20.   

    Machine.config文件中增加的内容是这样的:
    <httpHandlers>
        <add verb="*" path="ESRI.Web.Controls.MIMEImage.aspx" type="ESRI.ArcGIS.Server.WebControls.ImageHandler, ESRI.ArcGIS.Server.WebControls, Version=9.1.0.722, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86"/>这样对于ESRI.Web.Controls.MIMEImage.aspx请求,系统会交由ESRI.ArcGIS.Server.WebControls.ImageHandler来处理。ESRI.ArcGIS.Server.WebControls.ImageHandler是一个类,实现了IHttpHandler接口,所以能够作出回应。至于怎么找到dll文件,应该是能过PublicKeyToken来实现吧。
      

  21.   

    dll在gac里面,郁闷,没有源代码得装配件能用什么工具分析吗?