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

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[][].ToString();
ViewBag.Message = WindowsIdentity.GetCurrent().Name;
return View();
}

可以按以下思路解決:

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

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

顯示如下:

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

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

[ASP.NET] 檔案讀寫權限問題的更多相关文章

  1. 何解決 LinqToExcel 發生「無法載入檔案或組件」問題何解決 LinqToExcel 發生「無法載入檔案或組件」問題

    在自己的主機上透過 Visual Studio 2013 與 IISExpress 開發與測試都還正常,但只要部署到測試機或正式機,就是沒辦法順利執行,卡關許久之後找我協助.我發現錯誤訊息確實很「一般 ...

  2. ASP.NET MVC3 Razor 初心者容易遇到的問題(转)

    这是一些相关的文章地址 http://demo.tc/Post/679 http://blog.csdn.net/cheny_com/article/details/6298496

  3. 在 Server 端存取 Excel 檔案的利器:NPOI Library

    转处 http://msdn.microsoft.com/zh-tw/ee818993.aspx Codeplex 軟體套件(Package)資訊 套件名稱 NPOI 作者 tonyqus, huse ...

  4. (C/C++) FILE 讀寫檔案操作

    在C/C++ 讀寫檔案操作比較常見應該是利用 FILE.ifstream.ofstream 在這篇筆記裡頭記錄 FILE.fstream 使用方法及操作 #include <iostream&g ...

  5. [ASP.NET] 如何利用Javascript分割檔案上傳至後端合併

    最近研究了一下如何利用javascript進行檔案分割上傳並且透過後端.特地記錄一下相關的用法 先寫限制跟本篇的一些陷阱 1.就是瀏覽器的支援了 因為本篇有用到blob跟webworker 在ie中需 ...

  6. C# 選擇本機檔案並上傳

    參考自:http://www.dotblogs.com.tw/puma/archive/2008/11/07/5910.aspxhttp://www.codeproject.com/Articles/ ...

  7. 如何在 Visual Studio 2012 控制 TFS 版控時要忽略哪些檔案

    幾乎在任何一種版本控管的機制裡,都會遇到那些「不應該簽入到版本庫」的潛規則,以往我們在用 SVN 的時候,我就寫過幾篇文章要大家注意這點.最近都改用 TFS 做版控,因為大多使用 Visual Stu ...

  8. 使用Device IO Control 讀寫 USB Mass Storage

    http://www.ezblog.idv.tw/Download/USBStorage.rar 這是一個不透過檔案系統,去讀寫USB Mass Storage 任何位置(包含FAT)的方式 首先需安 ...

  9. mysql proxy讀寫分流(二)-加入RW splitting

    上一篇中提到 安裝LUA及MySQL Proxy後,接下來就是RW splitting(讀寫分流)的部份了 整體的概念圖跟上一篇MySQL Proxy安裝方式相同,丫忠再補上一個對應port的圖表: ...

随机推荐

  1. VS2013服务器资源管理器添加Mysql数据源

    如何为VS2013服务器资源管理器添加Mysql数据源,如图: 接下来就看下如何添加 1.需要下载安装Mysql for Visual Studio 1.1.1 下载位置:http://downloa ...

  2. 添加序号列(SQL Server)

    SELECT ROW_NUMBER() OVER (ORDER BY 实际缴费金额 ) AS A, --序号 RANK() OVER (ORDER BY 实际缴费金额 ) AS B, --相同跳过从新 ...

  3. DateTime对象反序列化的那些事

    今天在Android的Json反序列化过程中,Date类型无法转化成自己想要的格式,鉴于之前在C#的反序列话中也遇到过这个问题,解决的同时,顺手做个总结,供自己及需要的人日后查阅.       将Da ...

  4. JCo 指南

    http://blog.csdn.net/asdfak/article/details/5834731 JAVA 调用SAP端接口 Java Connector and BAPI 前些日子想去深入的研 ...

  5. java鼠标与键盘事件监听

    package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.F ...

  6. dom的element类型

    1)getElementById 后面的nodeName和tagName都一样 var a=document.getElementById("my_div"); console.l ...

  7. TCP/IP 要点备忘

    1. 3次握手/4次挥手过程,以及状态变化: 2. RTT,TTL,TOS(8位服务类型,最小延时.最大吞吐.最高可用.最小费用). 3. TimeWait(2msl)状态,防止最后一个ack丢失 4 ...

  8. mysql定时执行及延时执行,实现类似sql server waitfor功能

    熟悉SQL Server的人都知道,它有一个很有用的功能,waitfor time和waitfor delay,前者表示在某个时间执行,后者表示等待多长时间执行.在我们测试功能和定时执行的时候特别有用 ...

  9. Python 学习日记(第四周)

    set数据类型 先用一行代码来说明一下 #!/usr/bin/env python s2={} s = {33,12,33,32121} for i in s: print(i) print(type ...

  10. ARM 之LCD和LCD控制器

    既然提到 了LCD那么我们首先必须要了解的就是他的种类,CD(liquid crystal  display), 即液晶显示器,是这一种采用了液晶控制透光度计数来实现色彩的显示器,他与传统的CRT显示 ...