asp.net的web程序部署后,从服务器上下载的word文件,excel文件无权限打开
用asp.net的编写的web程序安装部署后,从服务器上下载的word文件,excel文件无权限打开(可以保存到本地,但是打开时word界面显示 无权限/或直接打开时word界面显示 无权限).显示大概如下的信息:"打开文件出错. 1.请检查文件权限 2.空间不足  3. ... ".
我在VS2008下生成运行时是可以上传下载文件的,但是安装后上传可以,下载后打开word,excel就出现这样的问题.txt文件不出现这样的问题.我是在vs调试的机子上直接安装的.
我怀疑是IIS的服务器权限设置的问题.不知道如何设置.
或是其他问题?请指教.
程序都已完成,vs环境操作没有问题,没有想到安装后会出现这样的问题.失败.

解决方案 »

  1.   

    COM组件权限是否配置,WORD或excel是否有密码。
    可能是服务器word问题。
      

  2.   

    会不会是word、excel文件本身的权限问题,或者网站发布时的权限设置问题?
      

  3.   

    sysping1:COM组件权限是否配置,WORD或excel是否有密码。 可能是服务器word问题。-->关于COM组件的问题,已配置com组件microsoft word文档项的 启动激活权限,访问权限,配置权限.ASPNET 和 EVERYONE应该是添加了.文件上传时时没有密码的.fengxupeng:会不会是word、excel文件本身的权限问题,或者网站发布时的权限设置问题?
    -->已经上传的文件在资源管理器里可以正常打开.就是在web程序的下载过程中不能打开,或是保存后不能打开.
       我认为word文件本身的权限问题可能性较大.是不是在下载的代码中要转换权限或是打开权限,否则本地存储时权限与服务器权限不同?
       我按照网上的说法进行了尝试不行呀.除了在webconfig里没有设置模拟,其他都试了.不行.
      各位再帮忙看看.
    谢过.
      

  4.   

    各位,今天我成功了!问题不在于设置权限,在于下载文件的代码部分.
    我改了代码,部署后直接成功.
    //这是原来的下载文件代码.不管怎么设置环境,在部署后都在下载打开word文件时 无权限/文件损坏等信息.(VS环境下是好的)
    if (ifExist)
                {
                    //string filename = System.IO.Path.Combine(strDownloadFilePath, strDownloadFileName);// strDownloadFilePath + strDownloadFileName;//要下载的文件的源地址
                    //Response.Clear();
                    //Response.ContentType = "Session/octet-stream";
                    //Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strDownloadFileName, System.Text.Encoding.UTF8));
                    //Response.AppendHeader("Content-Length", filename.Length.ToString());//  DownloadFile.Length.ToString());
                    //Response.WriteFile(filename);//Response.TransmitFile(filename);//下载
                    //Response.Flush();
                    //Response.End();//这是改了以后的下载文件代码.更改为此代码后,原来不成功的下载打开直接成功.未更改任何环境设置.可见还是我的代码的问题.该代码在生成安装文件后直接在另一台机子上安装,也未设置环境,直接成功.
                    string filename = System.IO.Path.Combine(strDownloadFilePath, strDownloadFileName);
                    FileInfo fi = new FileInfo(filename);
                    if (fi.Exists)
                    {
                        Response.Clear();
                        //Response.AddHeader("Content-Disposition", "attachment;filename=" + fi.Name);
                        Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strDownloadFileName, System.Text.Encoding.UTF8));
                        Response.AddHeader("Content-Length", fi.Length.ToString());
                        Response.ContentType = "application/octet-stream";
                        Response.Filter.Close();
                        Response.WriteFile(fi.FullName);
                        Response.End();
                    }
                }
    结贴!!
    感谢各位帮忙分析.