C# 从ASP.NET应用程序执行进程时的目录注意事项?

C# 从ASP.NET应用程序执行进程时的目录注意事项?,c#,asp.net,asp.net-mvc,azure,process,C#,Asp.net,Asp.net Mvc,Azure,Process,我有一个ASP.NET Web角色,它对调用特定控制器方法时生成的声音文件运行音频效果实用程序。我完全理解如何使用Process对象执行流程、设置工作目录、等待退出以及检查退出代码 以下是我的具体问题: 如果我的ASP.NET项目中的文件夹中有EXE文件及其依赖项,那么当Web角色发布到Azure时,我需要做什么才能将它们放在非公共目录中?或者它们是作为发布包的一部分复制到网站上的?如果是,如何获取EXE文件的最终位置?我假设我无法通过未经修饰的“/.EXE”路径引用EXE。换句话说,我需要知

我有一个ASP.NET Web角色,它对调用特定控制器方法时生成的声音文件运行音频效果实用程序。我完全理解如何使用Process对象执行流程、设置工作目录、等待退出以及检查退出代码

以下是我的具体问题:

  • 如果我的ASP.NET项目中的文件夹中有EXE文件及其依赖项,那么当Web角色发布到Azure时,我需要做什么才能将它们放在非公共目录中?或者它们是作为发布包的一部分复制到网站上的?如果是,如何获取EXE文件的最终位置?我假设我无法通过未经修饰的“/.EXE”路径引用EXE。换句话说,我需要知道如何处理EXE文件和依赖项(如果有的话),这样它才能正确运行,还需要知道在已发布的目录结构中的何处可以找到它,以便将该信息传递给流程对象的StartInfo属性

  • 是否需要更改web.config文件或更改目录权限设置以使其正常工作

注意:由于可伸缩性和超时问题,我知道从ASP.NET线程运行进程的注意事项:


但是,大多数情况下,该实用程序将不需要运行,因为控制器方法返回的大多数声音文件已经生成,并且正在从数据库中的BLOB字段中提取。此外,我还对转换进行了计时,使用单个内核运行最差需要200到500毫秒。

一种方法是:

  • 将所有EXE和从属文件放入一个文件夹(例如“MyFolder”)
  • 将文件夹作为项目的一部分,以便发布系统将其复制为普通文件
  • 具有以下web.config条目。这样可以确保任何人都无法从URL外部访问该文件
  • 在代码中,始终可以使用Server.MapPath访问process类要使用的EXE路径等
    
    
    可能有其他方法阻止通过以下方式访问此文件夹:

  • Url重写规则,以便仅允许站点的http\U引用者访问它们。i、 没有直接的热链接
  • http处理程序等

  • 有没有办法将文件放在“www”树之外的文件夹中,即公开可用的文件目录?有,但您需要手动将文件复制到那里。。自然发布流不会在基本网站路径之外执行任何操作。此外,从asp.net访问这些文件夹可能是一个问题,因为您需要设置显式权限。还需要了解主机web服务器的文件系统路径。。最后会变得很棘手,谢谢。这正是我想要避免的。