asp.net 访问局域网共享文件
最近有个项目ASP.NET的项目,要读写一个局域网里的共享文件夹上的文件,记录如下:
1、访问共享文件
在这里我定义了一个方法,SaveFileExist(filesrc,filename),这个方法的主要功能就是查看这个我传入的以filename为文件名的文件是否存在与我的filesrc路径之下,当然filesrc就是我的共享文件路径。
格式如: \\10.3.2.113\\test\\test
/// <summary>
/// 查找指定路径的共享文件是否存在
/// </summary>
/// <param name="url"></param>
/// <param name="filename"></param>
/// <returns></returns>
private string SelfFileExist(string url,string filename)
{
try
{
DirectoryInfo di = new DirectoryInfo(url);
//找到该目录下的文件
FileInfo[] fis = di.GetFiles();
foreach (FileInfo fi in fis)
{
if (fi.Name.Substring(,fi.Name.LastIndexOf('.')) == filename)
{
return fi.Name;
}
}
return "";
}
catch(Exception e)
{
return "";
}
}
该方法返回的fi.Name是带有后缀名称的文件名,我这儿只是遍历一下文件路径下的文件而已,直接查看文件存不存在,或直接对文件名判断,也就是:File.Exists(filePath)
以上的访问在本地vs里面运行的时候是可以的(前提是你的电脑能够访问这个共享地址哈)。但是呢,这个程序发布到 IIS 上面就不是那么的尽人意了,
不管是 Directory.Exists(dirPath)还是File.Exists(filePath),都是返回false,并且创建失败,
System.UnauthorizedAccessException: Access to the path '\\192.168.1.181\Share\Cares.S1.MVC' is denied.
at System.IO.FileSystem.CreateDirectory(String fullPath)
at System.IO.Directory.CreateDirectory(String path)
at Cares.S1.Data.Common.FileHelper.CreatDirectory(String dirPath) in D:\_john\Work\SVN\.........
经过网上搜索出来了很多的解决方案,在这结合自己的成功经历说明一下。如下:
2、IIS上访问共享文件夹或文件
不知道还有没有别得办法,在这里我说明下我的实现方式。具体如下:
举个例子:两台服务器A,B。A是文件服务器,B是网站所在的服务器,那么在A服务器上设置文件共享是必须的吧。
(1)这A服务器上设置共享的时候咱设置了一个访问共享的账号密码---->测试:在B服务器上可以通过 \\IP\文件夹路径 这个方式访问,输入正确的用户名和密码可以正常打开目录或文件
(2)然后在B服务器上也创建相同的帐户和密码(谨记,必须!),在发布的web应用网站上,点击对应的程序池里面,右键程序池->高级设置->点击 进程模型下面的标识后面的按钮。

在弹出的对话框中,选择自定义帐户,点击设置按钮,添加刚才设置的账号密码,最后全部点击确定按钮。
(3)在站点对应的目录中找到web.config文件,并在里面设置:
<system.web>
<!--<identity impersonate="true"/>-->
<identity impersonate="true" userName="您的账号" password="您的密码" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
出处:https://blog.csdn.net/qq_24266485/article/details/80756947
======================================================================
我们公司是使用的 ASP.NET Core MVC 结构,在项目发布到站点的时候也有同样的问题。使用的是.net core 2.2版本。
总结参考上面的说法:1)在A和B服务器上创建相同的用户名和密码。2)共享目录要有读写权限。3)只在iis的程序池中设置了用户名和密码
我并没有再设置web.config文件,也许.net core的项目和普通的asp.net项目有所不同吧。
asp.net 访问局域网共享文件的更多相关文章
- win10无法访问局域网共享文件?解决如此简单。。。。。
1 笔记本系统win10 X64企业版,其中一文件夹已设置为“共享”.本地帐号登录系统. 2 平板电脑系统win8.1 X64专业版,可以顺畅的访问笔记本的共享文件.微软帐号登录系统. 3 平板电脑系 ...
- win10无法访问局域网共享文件?(因微软账户和本地账户登陆问题导致)
1 笔记本系统win10 X64企业版,其中一文件夹已设置为“共享”.本地帐号登录系统. 2 平板电脑系统win8.1 X64专业版,可以顺畅的访问笔记本的共享文件.微软帐号登录系统. 3 平板电脑系 ...
- windows 访问局域网共享文件
直接在浏览器或资源管理器输入路径就OK file://10.16.73.129/FinTech/soft
- asp.net SimpleImpersonation使用身份模拟访问局域网共享目录
mvc中默认账户的权限很低,缺省情况下,ASP.NET应用程序以本机的ASPNET帐号运行,该帐号属于普通用户组,权限受到一定的限制,以保障ASP.NET应用程序运行的安全.但是有时需要某个ASP.N ...
- 实战ASP.NET访问共享文件夹(含详细操作步骤)
博客园找找看(http://zzk.cnblogs.com)的索引文件占用空间太大,需要移至另外一台服务器,所以要解决"在ASP.NET中通过共享文件夹访问索引文件"的问题. 假设 ...
- IIS/ASP.NET访问共享文件夹的可用方式
[截止2014-10-14] 网上搜索了很多篇文章,所提及的总共有两种方式: 1.Asp.Net模拟登陆: 例如: 实战ASP.NET访问共享文件夹(含详细操作步骤) 实现一个2008serve的II ...
- Windows无法访问局域网内共享文件夹[0x800704cf,0x80070035]解决方案
Windows7系统突然无法访问访问其他windows机器的共享文件夹,出现0x800704cf或者0x80070035错误: 解决方案如下两张图,配置与下面两张图为准,即可解决: 1:window+ ...
- Mac OS X 访问 Windows 共享文件夹
Mac OS X 访问 Windows 共享文件夹 mac没有网络邻居,但可以使用finder访问局域网中windows共享的文件 1.点击 Finder 前往菜单中的「前往服务器」(或快捷键 com ...
- 用CentOS,fedora等访问局域网中的Windows共享
来到Linux世界中已有一段时间了,感觉上好像自己的电脑成了一个孤岛.周围的人都还是用Windows系统,能相互共享文件,我用Linux系统,别人的共享文件都还不知道怎么访问?通过网上查资料学习,现在 ...
随机推荐
- 一款新的好用的SSH工具——FinalShell
FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求.特色功能:免费海外服务器远程桌面加速,ssh加速,双边tcp加速,内网穿 ...
- linux install jsoncpp0.5.0
要安装jsoncpp,首先要下载好scons,再去安装jsoncpp scons下载地址:wget http://prdownloads.sourceforge.NET/scons/scons-2.2 ...
- Codeforces Round #603 (Div. 2) (题解)
A. Sweet Problem (找规律) 题目链接 大致思路: 有一点瞎猜的,首先排一个序, \(a_1>a_2>a_3\) ,发现如果 \(a_1>=a_2+a_3\) ,那么 ...
- Appium移动端测试--基础预热
目录 Android自动化环境准备 需要安装的软件: Appium多端架构与自动化 Android自动化前提依赖: 获取App的信息: Android常用命令 adb shell 常用命令列表: An ...
- .net 生成非托管代码
最近在一个老外的程序中看到一段代码,其中使用了System.Runtime.InteropServices.MarshalAs方法进行托管代码与非托管代码之间封装数据,感觉很新颖.特意记录下来,供大家 ...
- XML和Json的特点
Xml特点: 1.有且只有一个根节点: 2.数据传输的载体 3.所有的标签都需要自定义 4.是纯文本文件 Json(JavaScript Object Notation)特点: json分为两种格式: ...
- java之mybatis之模糊查询
1.在 mybatis 中,模糊查询可以有以下方式 (1).第一种,直接将封装好的条件传给 sql 语句 <select id="findByName" parameterT ...
- 重新学习Spring2——IOC和AOP原理彻底搞懂
一.AOP 1 Spring AOP 的实现原理 是对OOP编程方式的一种补充.翻译过来为"面向切面编程". 1 AspectJ是静态代理的增强:所谓静态代理就是AOP框架会在便一 ...
- Date类的相关方法记录
1.Date类中的时间单位是毫秒,System.currentTimeMills()方法就是获取当前时间到1970年1月1日0时0分0秒(西方时间)的毫秒数. public class Test6 { ...
- Java之路---Day07
2019-10-21-23:30:24 ArrayList类[集合] What:java.util.ArrayList是大小可变的数组的实现,存储在内的数据称为元元素,此类提供一些方法来操作内部存储的 ...