C#关于WebService中File.Exists()处理远程路径的异常记录

目录

  • 前言
    • 方案一
      • 打开网站对应的程序池的高级设置
      • 按下图步骤设置凭据
      • 重启网站
      • 若方案一未能解决,请继续尝试方案二👇
    • 方案二
      • 从控制面板进入到 凭据管理器
      • 为windows凭据添加凭据
        • 点击**Windows凭据**,并点击**添加Windows凭据**
        • 键入远程路径的地址、账户名和访问密码
      • 再次调用WebService即可成功
    • 总结

欢迎来访博主私人 薄·客.

前言

bool isExists = File.Exists(FileFullPathName);

没错,再熟悉不过的一行代码。大部分情况下,它的返回是正确的。但是在开发过程中,我确实遇到了比较棘手的情况:

在Debug模式下,它是没有问题的;当我发布到IIS后,传入FileFullPathName远程共享路径时,且确保路径格式没有问题的前提下,它将确实存在的文件判断为不存在。(这里强调一下:通过文件管理器直接访问这个远程文件路径是OK的)一开始,就觉得很神奇,很无语😶(ˉ▽ˉ;)…

像大家一样,我转向百度获取解决办法,大概分为这几种:

1、如果路径是Copy的,可能在Copy的过程中包含了不可视的Unicode字符,建议手动一个一个路径敲上去;
2、尝试使用Directory.Exists(path)【注意:Directory.Exists是用来判断文件夹是否存在的;File.Exists是用来判断文件是否存在的】
3、权限问题【算是说到点子上了,但是就是找不到具体的解决办法】

所以,该篇文章,将主要针对上述第三点展开具体解决措施的描述:

下文将从两个方法展开讲解,方式一和方式二取其一即可

方案一

归根到底问题出在IIS WebService,前面我们说了,Debug模式下它是能正常访问的,所以方案一中我们对IIS对应的WebService服务进行权限设置:

打开网站对应的程序池的高级设置

打开网站对应的程序池的高级设置

按下图步骤设置凭据

 按图步骤设置凭据

重启网站

重启网站

若方案一未能解决,请继续尝试方案二👇

方案二

如果方案一还是无效,那就需要取操作Windows凭据

从控制面板进入到 凭据管理器

凭据管理器

为windows凭据添加凭据

点击Windows凭据,并点击添加Windows凭据

添加凭据

键入远程路径的地址、账户名和访问密码

键入信息

再次调用WebService即可成功

总结

所以我们在保证路径格式正确的前提下,只能考虑权限的问题。 我们通常在文件管理器键入路径访问方式下的账户不同于IIS调用方式的账户

以下官方文档中就给到了很明确的解释:
官方说明

Alt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/96984.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用c的标准库函数创建线程

#include <stdio.h> #include <threads.h> #include <time.h>int thrd_proc(void * varg){// 打印10次int times 10;struct timespec ts {1,0}; // 1秒, 0纳秒while(times--){printf("%s\n",(char *)varg);// 每隔1秒,打印一次thrd_sleep(&t…

Revit SDK: ProximityDetection_WallJoinControl 墙相交检测

前言 这个例子介绍了如何使用过滤器以及墙体的位置线来及进行相交检测&#xff0c;包括&#xff1a; 找到和墙相交的柱子找到出入口的障碍物找到墙各个端点接近的墙验证墙和其它墙的交接情况 内容 找到和墙相交的柱子 关键点在于 ElementIntersectsElementFilter 可以用于…

配置环境变量的作用

配置环境变量的作用 一般运行过程&#xff1a;寻找QQ.exe所在的目录&#xff0c;输入QQ.exe配置环境变量&#xff1a;把QQ所在的路径配给操作系统Path&#xff0c; 在任何路径下都能运行QQ.exe 举例&#xff1a; 定义变量&#xff1a;SCALA_HOME SCALA_HOME、JAVA_HOME 等这…

Python面试:什么是GIL

1. GIL (Global Interpreter lock)可以避免多个线程同时执行字节码。 import threadinglock threading.Lock()n [0]def foo():with lock:n[0] n[0] 1n[0] n[0] 1threads [] for i in range(5000):t threading.Thread(targetfoo)threads.append(t)for t in threads:t.s…

机器连接和边缘计算

以一种高效、可扩展的方式进行连接和边缘计算的结合&#xff0c;解决了在工业物联网应用中的机器数据集成问题。 一 边缘计算 边缘计算描述了由中央平台管理的数据分散式处理&#xff0c;它对于工业物联网而言非常重要。在许多应用程序中&#xff0c;由于数据量非常大&#xf…

修改linux中tomcat的端口

随便修改一个 以8055为例子 开放8081端口 firewall-cmd --permanent --add-port8081/tcp firewall-cmd --reload firewall-cmd --list-all

Java 并发编程

Java 并发编程 一、线程创建1.继承 Thread 类2.实现 Runnable 接口3.实现 Callable 接口 二、线程方法三、线程同步1.同步代码块2.同步方法3.ReentrantLock4.乐观锁 四、线程池1.ThreadPoolExecutor2.Executors 一、线程创建 1.继承 Thread 类 通过继承 Thread 类来创建线程是…

【高性能计算】opencl语法及相关概念(三)事件,内存

opencl中的事件概念 当谈到OpenCL中的事件时&#xff0c;它们代表了执行的各个阶段或操作的状态信息。通过使用事件&#xff0c;您可以跟踪和管理内核执行以及内存操作的进度和顺序。以下是与OpenCL事件相关的关键概念&#xff1a; 创建事件&#xff1a;您可以使用clCreateUse…

Java运行时jar时终端输出的中文日志是乱码

运行Jar时在控制台输出的中文日志全是乱码&#xff0c;这是因为cmd/bash默认的编码是GBK&#xff0c;只要把cmd的编码改成UTF-8即可 两种方式修改&#xff1a;临时修改和注册表永久修改 临时修改 只对当前的cmd页面有效&#xff0c;关闭后重新打开都会恢复成GBK, 打开cmd&am…

记一次对链接、COMMON块、多重符号定义的理解

问题引入 首先是两个测试程序 // foo.c long long int a;// bar.c #include <stdio.h>int a; int main(){a 1;long long int len sizeof(a);printf("%lld\n", len);return 0; }将两个程序链接到一起 问题&#xff1a;len等于几&#xff1f; 初步分析 环境…

研磨设计模式day15策略模式

场景 问题描述 经常会有这样的需要&#xff0c;在不同的时候&#xff0c;要使用不同的计算方式。 解决方案 策略模式 定义&#xff1a; 解决思路&#xff1a;

PyCharm软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 PyCharm是一种集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门为Python开发者设计。它是由捷克软件公司JetBrains开发的&#xff0c;为Python开发人员提供了高效、易用和功能丰富的工具集。 以下是PyCharm软件的主要…

基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)

系统&#xff1a;Macbook M1 镜像版本&#xff1a;mysql:5.7 如果是要查 slave连接不上 master的问题&#xff0c;可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 docker pull mysql:5.7本地数据卷挂载 因为mysql不挂载的话&#xff0c;重启丢失数据&#xff0c;所以在本地创…

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part III

用Cmake build OpenCV后&#xff0c;在VS中查看OpenCV源码的方法(环境VS2022openCV4.8.0) Part III 用Cmake build OpenCV后&#xff0c;在VS中查看OpenCV源码的方法&#xff08;环境VS2022openCV4.8.0&#xff09; Part I_松下J27的博客-CSDN博客 用Cmake build OpenCV后&…

Maven的profiles多环境配置

一个项目通常都会有多个不同的运行环境&#xff0c;例如开发环境&#xff0c;测试环境、生产环境等。而不同环境的构建过程很可能是不同的&#xff0c;例如数据源配置、插件、以及依赖的版本等。每次将项目部署到不同的环境时&#xff0c;都需要修改相应的配置&#xff0c;这样…

学习node之——如何在项目中使用MySQL、前后端的身份认证

上一篇文章只写了一丢丢&#xff0c;这篇才是正片&#xff0c;look look look 一、使用mysql模块操作数据库 1、查询数据 这里连接数据库的用户和密码都是我们在安装mysql时配置的密码。每个人的users表格里面数据不同&#xff0c;结果也会不一样哟&#xff01; // 导入mys…

统一网关Gateway

文章目录 概览网关的作用搭建网关断言工厂路由过滤器全局过滤器案例 过滤器执行顺序跨域问题 概览 网关的作用 搭建网关 断言工厂 路由过滤器 全局过滤器 案例 过滤器执行顺序 跨域问题

QT基础教程之四QMainWindow

QT基础教程之四QMainWindow QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏&#xff08;menu bar&#xff09;、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget)&#xff0c;是许多应用程序…

【c语言】输出n行按如下规律排列的数

题述&#xff1a;输出n行按如下规律排列的数 输入&#xff1a; 4(应该指的是n) 输出: 思路&#xff1a; 利用下标的规律求解&#xff0c;考察数组下标的灵活应用&#xff0c;我们可以看出数从1开始是斜着往下放的&#xff0c;那么我们如何利用两层for循环求解这道题&#xff…

打造完美直播:深入解析人脸美颜SDK的算法与特性

在如今数字化的时代&#xff0c;直播已经成为了人们与世界互动的重要方式之一。而在众多直播平台中&#xff0c;吸引观众并提供高质量的视觉体验成为了至关重要的任务。其中&#xff0c;人脸美颜技术的应用对于提升直播质量和观众体验起到了不可忽视的作用。本文将深入解析人脸…