当前位置 主页 > iis相关 >

    关于IIS与sxd的问题解决方法

    栏目:iis相关 时间:2018-09-20 13:10

      问题:
     
      ASP.NET网站中用到一个FlashUpload上传控件,在本地IIS和别人机子上测试都能正常使用,但放到服务器上Flash就不能正常显示了,查看控件生成的html代码,有下面的一段:
     
      vlaue="/WebResource.axd?d=GvoIQ70Gti0xmxaNwXnzK1tIaZtYgTTvW_fywzsjWOGckn0x_7_oFMxxl7xedHRP0&t=633752332420000000"
     
      这个是指定Flash文件的路径,因为Flash文件是嵌入控件DLL文件中的,因此要使用WebResource.axd来访问这个资源。根据网上的说明,可以使用HostName+WebResourceURL的方式来访问这个资源,我分别在本机和服务器上做了实验,发现本地IIS能正常显示Flash而服务器则不能。
     
      原因:
     
      首先要清楚WebResource.axd是什么。。。根据MSDN和网上的说明,WebResource.axd是在Web.config文件中定义的一个httpHandler,默认情况下是在.netframework安装位置CONFIG文件夹下的web.config中定义的。也就是说WebResource.axd并不是个实际存在的文件,而是通过动态调用由它来提取assembly中的WEB资源。但如果IIS中并未定义.axd文件的映射或者在定义的地方勾选了”检查文件是否存在“,这都会导致WebResource.axd不能正常使用。当使用this.textbox1.Focus()方法使文本框自动获取焦点时,也会在客户端html代码中产生调用assembly中javascript代码的语句,也就肯定会用到WebResource.axd了,这时候的典型状况就是在IE状态栏左下角出现黄色惊叹号,点击后弹出
     
      缺少对象
     
      查看网页源代码找到122行会看到
     
      <scripttype="text/javascript">
     
      <!--
     
      WebForm_AutoFocus('tbxName');//-->
     
      </script>
     
      往上看会找到
     
      <scriptsrc="/WebResource.axd?d=p8QWZ5nrxhDrOm_Cj7Ze6djvsLMks6CAWxBLdMEw2JM1&amp;t=633386292203125000"type="text/javascript"></script>
     
      原因和前面的描述是一样的。
     
      解决:
     
      查看IIS的配置(如果不是本地就得联系空间服务商),在应用程序配置中查找.axd映射,如果没有就新建,映射路径和.aspx一样,注意不要勾选”检查文件是否存在“,确定后测试下效果。如果已存在映射就检查下路径是否正确以及有没有勾选”检查文件是否存在“,问题应该能够解决。