.Net 服务(WCF) 中访问共享文件

原理:在就先使用CMD命令创建空连接,就可以使用服务方式进行访问.

 

复制代码
    /// <summary>
    /// net use 建立映射的功能模块
    /// </summary>
    public static class NetUseHelper
    {
        public static IpcWcfOperateResult CreateConnect(string dosLine)
        {
            IpcWcfOperateResult rlt = new IpcWcfOperateResult() { isSuccess = false };
            Process proc = new Process();
            try
            {
                proc.StartInfo.FileName = "cmd.exe";
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.RedirectStandardInput = true;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.StartInfo.RedirectStandardError = true;
                proc.StartInfo.CreateNoWindow = true;
                proc.Start();

                proc.StandardInput.WriteLine(dosLine);
                proc.StandardInput.WriteLine("exit");
                while (!proc.HasExited)
                {
                    proc.WaitForExit(1000);
                }

                string errormsg = proc.StandardError.ReadToEnd();
                proc.StandardError.Close();
                if (String.IsNullOrEmpty(errormsg))
                {
                    rlt.isSuccess = true;
                }
                else
                {
                    rlt.isSuccess = false;
                    rlt.errorMesg = errormsg;
                }
            }
            catch (Exception ex)
            {
                rlt.isSuccess = false;
                rlt.errorMesg = ex.Message;
            }
            finally
            {
                proc.Close();
                proc.Dispose();
            }
            return rlt;
        }
    }
复制代码
复制代码
        public IpcWcfOperateResult CheckAndCreateConnect()
        {
            string dosLine = AppSettings.GetSetting("NetworkShare");
            if (!string.IsNullOrEmpty(dosLine))
            {
                return NetUseHelper.CreateConnect(dosLine);
            }
            else
            {
                return new IpcWcfOperateResult
                {
                    isSuccess = false,
                    errorMesg = "本地数据库模式不需要创建连接",
                    model = "Local"
                };
            }
        }
复制代码

web.config中配置命令行

  <appSettings>
    <!-- net use \\{IP地址或计算机名}{共享目录相对路径} /User:{电脑用户名} {密码} /PERSISTENT:YES -->
    <add key="NetworkShare" value="net use \\192.168.1.161\share /User:Administrator /PERSISTENT:YES"/>
  </appSettings>

 

如果报错:

不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接。中断与此服务器或共
享资源的所有连接,然后再试一次。
使用命令删除一下连接,先删除所有连接:

net use * /del /y

 

posted @   竹殇  阅读(231)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示