[ASP.NET] 檔案讀寫權限問題

今天遇到一個問題,環境如下:

IIS Server: Server 2008 R2 沒加域

File Server: Server 2003 加域

 

當我的Web程序需要把位於File Server的一個EXCEL檔當成資料庫時卻發生拒絕存取的問題

 

public ActionResult CNC()
        {
            //1.把EXCEL複製到本機
            if (!System.IO.Directory.Exists(@"D:\System Temp"))
            {
                // 目录不存在,建立目录
                System.IO.Directory.CreateDirectory(@"D:\System Temp");
            }

            //String sourcePath = Server.MapPath("~/Public/CNC機台狀態表.xlsx");
            string sourcePath = @"\\192.168.2.5\公共区\mis\Ren\Temp\CNC機台狀態表.xlsx";
            String targetPath = @"D:\System Temp\CNC機台狀態表.xlsx";
            bool isrewrite = true; // true=覆盖已存在的同名文件,false则反之
            System.IO.File.Copy(sourcePath, targetPath, isrewrite);
            //2.取得所有資料
            DataTable dt = new DataTable();
            string excelPath = targetPath;
            string strCon = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelPath + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";
            OleDbConnection myConn = new OleDbConnection(strCon);
            string strCom = "SELECT count(*) FROM [機台總表$]";
            myConn.Open();
            OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);

            myCommand.Fill(dt);

            try
            {
                myCommand.Fill(dt);
            }
            catch (Exception)
            {
            }
            myConn.Close();
            ViewBag.Result = dt.Rows[0][0].ToString();
            ViewBag.Message = WindowsIdentity.GetCurrent().Name;
            return View();
        }

 

可以按以下思路解決:

1.查看你的WEB程序用什麼認證去存取檔案

ViewBag.Message = WindowsIdentity.GetCurrent().Name;

顯示如下:

然後去IIS管理器→應用程序池改變標示,改成有存取該EXCEL檔案的帳號即可。

 

2.如果搞了很久發現問題依舊存在,試著把所有的SERVER加在同一個域試試。

转载于:https://www.cnblogs.com/Ren-Chen/p/3584497.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值