Windows服务使用StreamReader访问无效目录

异常现象

我正在使用StreamReader以下方法读取与可执行文件位于同一目录中的文件

StreamReader reader=new StreamReader(".\\file.txt"); //NOTE: 2nd backslash is escape character in C#

在调试环境中执行此操作时,它会很好地读取文件,但是当我安装服务时,它将尝试在其中读取文件,C:\Windows\System32\就像将工作目录设置为该路径一样,但是在服务属性中没有工作目录选项。我猜它正在使用sc.exe的工作目录。

有没有办法让我使用相对文件路径将其解析为当前可执行文件的位置?因为服务可能会根据部署放置在不同的位置。

阿德里亚诺·雷佩蒂(Adriano Repetti)

是的,服务的工作目录%WinDir%\System32GetModuleFileName()还会返回不正确的结果,因为您的服务是由另一个可执行文件托管的(偶然地也放置在该目录中)。

您必须找到执行程序集及其位置,描述起来比做起来要冗长:

string assemblyPath = Assembly.GetExecutingAssembly().Location;

现在,只需提取目录名称并与所需文件合并即可:

string path = Path.Combine(Path.GetDirectoryName(assemblyPath), "file.txt");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

访问服务使用者(iPOJO)中的服务属性

来自分类Dev

Windows服务使用关闭事件无法停止服务

来自分类Dev

WCF服务使用Active Directory授权-访问被拒绝错误

来自分类Dev

Windows服务使用EventWaitHandle等待命名事件的问题。

来自分类Dev

如何从Windows服务访问映射目录

来自分类Dev

Windows服务使用外部库,我是否需要以某种方式向服务注册?

来自分类Dev

Azure移动服务使用哪些权限通过mssql对象访问Azure SQL数据库?

来自分类Dev

c#windows服务使用HKEY_USERS当前登录的用户

来自分类Dev

从服务使用Office 365 API

来自分类Dev

用于多个服务使用的API的OAuth

来自分类Dev

AngularJS服务使用$ q或换行返回

来自分类Dev

从WCT Restful服务使用FileStream

来自分类Dev

AngularJs:为服务使用别名

来自分类Dev

哪些服务使用UDP端口495?

来自分类Dev

REST 服务使用 PHP 7

来自分类Dev

MVVM 依赖注入服务使用

来自分类Dev

Azure移动服务使用什么权限来通过mssql对象访问Azure SQL数据库?

来自分类Dev

某些服务使Windows 7停止运行-如何找到它?

来自分类Dev

使用Jersey和ExtJS的REST Web服务使用JSON

来自分类Dev

如何使用服务使用启用 Bigquery API?

来自分类Dev

使用HttpClient访问作为虚拟目录运行的Web服务

来自分类Dev

时间测量探查器服务使用哪种设计模式?

来自分类Dev

如何强制mongodb服务使用/etc/mongodb.conf?

来自分类Dev

docker-compose:对多个服务使用多个Dockerfile

来自分类Dev

docker-compose:对多个服务使用多个Dockerfile

来自分类Dev

哪些GATT服务使用同一UUID的多个特征?

来自分类Dev

跨多个微服务使用JWT身份验证

来自分类Dev

即时消息Web服务使用socket.io

来自分类Dev

可以将其作为Angular服务使用吗?

Related 相关文章

  1. 1

    访问服务使用者(iPOJO)中的服务属性

  2. 2

    Windows服务使用关闭事件无法停止服务

  3. 3

    WCF服务使用Active Directory授权-访问被拒绝错误

  4. 4

    Windows服务使用EventWaitHandle等待命名事件的问题。

  5. 5

    如何从Windows服务访问映射目录

  6. 6

    Windows服务使用外部库,我是否需要以某种方式向服务注册?

  7. 7

    Azure移动服务使用哪些权限通过mssql对象访问Azure SQL数据库?

  8. 8

    c#windows服务使用HKEY_USERS当前登录的用户

  9. 9

    从服务使用Office 365 API

  10. 10

    用于多个服务使用的API的OAuth

  11. 11

    AngularJS服务使用$ q或换行返回

  12. 12

    从WCT Restful服务使用FileStream

  13. 13

    AngularJs:为服务使用别名

  14. 14

    哪些服务使用UDP端口495?

  15. 15

    REST 服务使用 PHP 7

  16. 16

    MVVM 依赖注入服务使用

  17. 17

    Azure移动服务使用什么权限来通过mssql对象访问Azure SQL数据库?

  18. 18

    某些服务使Windows 7停止运行-如何找到它?

  19. 19

    使用Jersey和ExtJS的REST Web服务使用JSON

  20. 20

    如何使用服务使用启用 Bigquery API?

  21. 21

    使用HttpClient访问作为虚拟目录运行的Web服务

  22. 22

    时间测量探查器服务使用哪种设计模式?

  23. 23

    如何强制mongodb服务使用/etc/mongodb.conf?

  24. 24

    docker-compose:对多个服务使用多个Dockerfile

  25. 25

    docker-compose:对多个服务使用多个Dockerfile

  26. 26

    哪些GATT服务使用同一UUID的多个特征?

  27. 27

    跨多个微服务使用JWT身份验证

  28. 28

    即时消息Web服务使用socket.io

  29. 29

    可以将其作为Angular服务使用吗?

热门标签

归档