最近用到了一直在用的uploadify,结果开发时一切都ok,放到服务器上后就出错,不好上传文件。
 甚至把uploadify的flash 源代码全部研究了一遍,还是没找到原因。
 后来发现,只要把网站的域名去掉,本机访问,就可以上传。一加域名就不好上传。
 想到了这个服务器是放在一个路由器下的局域网内,路由器上设置虚拟服务器映射搭建的。用自己的机器也这样放在路由器下,虚拟映射,同样不好上传。只能检测到是上传的处理程序文件找不到,500错误
 
各位有没有遇到这样的问题,国内国外都搜了遍,没找到相关文章。

解决方案 »

  1.   

    请求是否用的.ashx文件来处理的?
    服务器支持吗(.ashx文件的get,post动作)?
      

  2.   

    看一下这个贴应该对你有些帮助
    方案二:
    在Web服务器上配置IIS
     Internet Information Server的缩写为(IIS)是一个World Wide Web server。Gopher server和FTP server全部包容在里面。IIS意味着你能发布网页,并且有ASP(Active Server Pages)、JAVA、VBscript产生页面,有着一些扩展功能。
    其次,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,
    是在Windows NT Server上建立Internet服务器的基本组件。它与Windows NT Server完全集成,
    允许使用Windows NT Server内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。
    (1). 为站点准备一个IP地址
    任何一个能被访问的站点必须有一个固定的IP地址为前提,Windows Server 2003或Windows XP
    允许为同一快网卡设置多个IP地址,操作方法如下:
    在“本地连接”上右击,在弹出的快捷菜单中执行“属性”命令,打开“本地连接属性”对话框。
    选择“Internet 协议(TCP/IP)”后单击【属性】按钮,在打开的对话框中单击【高级】按钮,然后单击“IP地址”区域中的【添加】按钮,在打开的对话框中输入要添加的IP地址与子网掩码即可。
    (如IP地址:192.168.0.1,子网掩码:255.255.255.0)
    注:微软对上述操作有明确的说明:“如果同一网卡的IP地址超过9个,不能保证其运行的稳定性”。 
    对于这上问题的一个有效的解决办法是:如果同一服务器中安排的站点数量过多时,可以通过在IIS中指定不同的TCP端口号来区分不同的站点。如:“http:\\192.168.0.1:8080”和“http:\\192.168.0.1:8081”
    表示访问使用同一个IP地址的两个不同的站点(端口号分别为“8080”和“8081”),http的默认端口号是“80”,即“http:\\192.168.0.1”与“http:\\192.168.0.1:80”等效。
    (2). 为站点创建“主目录”
    每个Web站点必须有一个“主目录”。该目录是位于服务器上存放站点所有文件的目录。要求目录所处的驱动器必须是NTFS分区。
    (3). 配置IIS
    在“控制面板”打开“管理工具”,在“管理工具”窗口中打开“Internet 信息服务(IIS)管理器”
    打开IIS管理窗口。在管理器的左窗口中选择“网站”,再在“操作”菜单中选择“新建”下的“网站”命令。启动“网站创建向导”,然后按向导提示分别输入网站的描述和为网站分配的IP地址等。操作完成后将建立一个空的站点。只要将完成的网站发布到网站的指定目录下就可以通过浏览器对网站进行访问了。
    注:对于没有添加IIS的系统先要为其添加IIS。添加方法是:打开“控制面板”的“添加/删除程序”,选择“添加/删除Windows 组件”中选中“Internet 信息服务(IIS)”同时将系统盘插入光驱中点击“下一步”,进行IIS的安装。只有先安装好IIS才在IIS中进行对网站的配置。
        注:对于创建好虚拟站点的网站还可以在IIS管理窗口中对其进行进一步的设置。在IIS管理窗口中右击创建好的网站,打开其属性对话框进行进一步的设置:
    1) 由于VS2005创建的ASP.NET网站需要ASP.NET 2.0
    版本的支持,而IIS一般默认的为ASP.NET 1.1故要在打开的属性窗口的ASP.NET选项卡下的“ASP.NET 2.0
    版本”下拉列表框中选择ASP.NET 2.0版本。
    2)  在打开的属性窗口的“文档”选项卡的“启用默认文档”区点击【添加】按钮将网站的起始页面的名称添加到文本框中。这样在浏览器中输入站点的域名或IP地址后将打开默认的起始页,而无需输入起始页面名称。
    (3)  在打开的属性窗口的“网站”选项卡中可以更改站点的描述、IP地址和TCP端口等信息。
     
    2. 在第一次发布网站时往往还会遇到以下几个问题:
    (1). 浏览器中输入网站的地址后出现如下的提示:
    “服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。”
    当我们查看系统事件日志发现:
    错误:
    未能初始化 AppDomain:/LM/W3SVC/1/Root,未能加载文件或程序集“System.Web....”
    错误:
    由于无法创建应用程序域,因此未能执行请求。错误: 0x80070005 拒绝访问。  
    警告:
    未能初始化 AppDomain:/LM/W3SVC/...
    Exception: System.IO.FileLoadException
    Message: 未能加载文件或程序集“System.Web, Version=2.0.0.0, Culture=neutral, 
    PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。拒绝访问。
    等的错误提示信息。
    对于上述问题产生的原因一般有两个:
    (2). asp.net2.0没有正确地在IIS中注册 
    (3). 权限问题
    如果是第一种情况,可以重新注册asp.net:
    系统盘\windows\microsoft.net\framework\v2.0.50727(此处为版本号)\aspnet_regiis.exe或者是直接在Mocrosoft .NET Framework v2.0 的SDK命令提示符下输入:aspnet_regiis.exe 如果是权限问题,需要确保asp.net运行帐户(默认情况下,在win2003中是Network Service,在xp中是aspnet)对N个目录具有相应的访问权限,主要是系统目录(具体列表可以在网上很容易找到),还有一个容易忽略的目录:Web应用所对应的虚拟目录
    (4). 浏览器中输入网站的地址后出现如下的提示:
    “访问IIS元数据失败”这是由于先安装的VS 2005,后安装的IIS才出现的。
    解决办法如下:
    在开始菜单中打开 "Microsoft .NET Framework SDK V2.0"目录下的“SDK 命令提示符”,
    打开以后在命令提示符中运行“aspnet_regiis -r”就可以了.
    如果你安装的只是.net Framework,那么可以到下面的目录运行同样的命令:
    %Systemroot%\Microsoft.NET\Framework\v2.0.50727
     
    3. 创建FTP远程管理账号
    在IIS中创建了发布ASP.NET网站需要的站点后,还需要为用户提供一个用于远程上传文件的FTP服务器账号。
    当然如果只是在局域网上发布的话,最后一步就省了。1.发布网站
    方案一:
    直接就有发布选择。建议使用deploy for 2008 发布 打包一个网站的dll方便查看,要不默认会分别生成。这个工具打包的网站 运行效率很好,安装好插件 在网站项目上新建个插件项目直接生成,简单,快捷
    直接在解决方案下面的网站名称上点击右键选择“发布”,如下图(5-1):
      

  3.   

    很久没上来了,这个问题后来自己找到了,最终的原因是这样的:我在uploadify的接收文件的程序里用到了session,检测的结果是用上域名后,session就丢失,有人说的原因是session未能经过flash传输到ashx里。所以解决方法是避免用session,作为参数传过去