【发布时间】:2011-08-14 16:10:25
【问题描述】:
从我之前的问题,Executing batch file in C# web service
我检查了所有相关内容的权限,发现:
批处理文件:权限 = 对所有用户的完全控制
IIS 用户 = 我的用户
..win32\cmd.exe:系统权限、管理员权限、myUser = 读取和执行、“TrustedInstaller”的读取权限(它是什么?)= 完全控制
Visual Studio 正在管理员模式下运行。
我在互联网上做了一些研究,似乎我需要在我的机器上使用“本地策略”做一些事情。不幸的是,我使用的是 Windows Vista Home Premium,这似乎我无法设置本地策略......我也尝试将 cmd.exe 的权限更改为“完全控制”,但它不允许我这样做。
我似乎面临一个“无法解决”的问题,所以我将解释我在做什么,以便有人可以告诉我该怎么做。
我使用黑莓模拟器开发了黑莓应用程序。它与我的网络服务在同一台 PC 上。
我用 C# 开发了 Web 服务,并在我的本地主机上发布。
Blackberry 应用程序将文件上传到 Web 服务。 Web 服务将文件存储在我的 PC 上。 (这部分我没有问题。)
我的电脑上有一个程序,我将它命名为 myprogram.exe。该程序仅在dos上运行。该程序将使用命令将文件从一种文件类型转换为另一种文件类型 myprogram.exe path\oldfile.x path\newfile.y newfile.y 将自动创建并存储在我的 PC 上。
我需要转换从 BB 发送并现在存储在本地 PC 上的文件,因此我编写了 1 个包含 dos 命令的批处理文件。 Web 服务应该执行批处理文件,但它不会。
如果我停止尝试使用批处理文件,有什么方法可以执行这些命令吗? (或我可以运行该外部程序的任何方式)请给我一个想法。我在互联网上搜索过,但仍然没有任何想法。我不知道现在该怎么办。 T_T
PS。如果我的问题很愚蠢,请原谅我。我只是想尽一切可能使这部分项目取得成功。
【问题讨论】:
-
你为什么要创建批处理文件而不是直接调用 myprogram.exe。当您将另一个用户分配给您的服务而不是拥有足够权限进行您需要的操作的本地服务时会发生什么?
-
我真的不知道怎么调用myprogram.exe直接输入命令。你能给我举个例子吗?
-
我试过 System.Diagnostics.Process.Start(@"C:\Program Files\TotalAudioConverter\AudioConverter.exe");但什么也没发生。 Y_Y
-
您的 AudioConverter.exe 可能需要一些参数?所以 System.Diagnostics.Process.Start(@"C:\Program Files\TotalAudioConverter\AudioConverter.exe",@"C:\MyFolder\MyInFile C:\MyFolder\MyOutFile"); (或任何需要的参数)
-
所以这意味着我可以将所有参数放在 C:\Program Files\TotalAudioConverter\AudioConverter.exe 之后,对吗?完整的参数是 C:\MyFolder\MyInFile C:\MyFolder\MyOutFile c-mp3 所以它看起来像 System.Diagnostics.Process.Start(@"C:\Program Files\TotalAudioConverter\AudioConverter.exe",@"C :\MyFolder\MyInFile C:\MyFolder\MyOutFile -cmp3");对?非常感谢您的帮助,十一人!!!我会尽快尝试并告诉你结果:)
标签: c# web-services batch-file cmd