0

在发布到这里之前,我已经查看了一些关于 SO 的问题,但是我对我的 Web 应用程序的物理路径与虚拟路径有点迷失了。

我的网络应用程序触发一个名为“JobRunner.exe”的 exe 运行,但是,该文件位于我驱动器上的不同位置。假设文件结构如下:

MainFolder/(下面包含 webapp 和 exe 文件夹)

  • WebApp/WebapplicationCode 的文件夹

  • exe/bin/debug/JobRunner.exe 的文件夹

我希望 web 应用程序文件夹中的代码调用作业运行器。我目前正在尝试这样做:

WorkingDirectory = Request.MapPath("~/JobRunner/bin/Debug/"),
FileName = Request.MapPath("JobRunner.exe")

这会导致找不到文件,我已经尝试过使用绝对物理路径,但是一旦部署了应用程序,这将无法扩展。如何引用我的应用程序代码库上方一个文件夹和三个文件夹下方的 exe?我只是以错误的方式接近这个吗?

4

1 回答 1

0

假设 WebApp 文件夹是 IIS 中的“应用程序”,即。MapPath("~/") 将为您提供 WebApp 的路径。如果该假设是正确的,那么您需要这样做。

FileName = Path.Combine(Request.MapPath("~/"), @"..\jobrunner\bin\debug\jobrunner.exe");

因为没有办法直接映射到 Web 应用程序上方的路径(AFAIK - 也​​许有来自服务器上下文的东西......)

请注意,我不确定“..\jobrunner\bin\debug\jobrunner.exe”的“\jobrunner\”部分,因为您对文件夹设置的描述有点混乱,但希望您能理解我的意思以及 Path.Combine 如何让您上一层文件夹。

于 2013-11-06T04:20:30.933 回答