gpt4 book ai didi

c# - 以编程方式从命令提示符启动 Node js 脚本

转载 作者:行者123 更新时间:2023-12-03 04:38:14 30 4
gpt4 key购买 nike

我有一个在我的 Web 角色中运行 Socket.io 实现的 Node js 脚本。我能找到的关于如何启动 Node js 脚本的唯一方法是在命令提示符中运行它,因此我在 Web 角色中创建了一个后台任务,该任务在命令提示符中运行脚本。

我将 Node js 文件、cmd.exe 和 Node 模块文件的“复制到输出目录”属性设置为“如果较新则复制”,并且它们在 bin 文件夹中生成。如果我手动启动 bin 文件夹中的 cmd.exe 并运行命令“node App.js”,它会工作,socket.io 正在监听的端口正在运行。但是当我像下面这样以编程方式运行命令时,它不起作用。

它不会抛出任何错误,所以我不知道它是否是我的代码中的问题,或者我们无法像这样启动 Node js脚本。有什么办法可以查出命令是否正确执行?因为进程启动时没有打开cmd提示窗口。任何指导、建议或想法都深表感谢。谢谢

public class BackgroundThread
{
public static void Start()
{
var appRoot = Path.Combine(Environment.GetEnvironmentVariable("RoleRoot") + @"\", @"approot");

ProcessStartInfo psi = new ProcessStartInfo();
psi.CreateNoWindow = false;
psi.FileName = Path.Combine(appRoot, "bin", "cmd.exe");
psi.Arguments = "node app.js";
psi.UseShellExecute = false;
psi.WorkingDirectory = Path.Combine(appRoot, "bin");


try
{
Process p = Process.Start(psi);

}
catch (Win32Exception ex)
{
Console.WriteLine(ex.ToString());
Console.WriteLine(ex.StackTrace);
Console.WriteLine(ex.Source);
Console.WriteLine(ex.ErrorCode);
}
}

}

编辑:

事实证明,iisnode 可以处理所有事情,我只需在 web.config 中添加重写代码即可。来自此处的示例 azure Node js 应用程序 http://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/我得到了这个重写代码

<rewrite>
<rules>
<clear />
<rule name="app" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="iisnode.+" negate="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="App.js" />
</rule>
</rules>
</rewrite>

它会自动启动 App.js,但会将我的所有 View 重定向到 App.js 脚本。我想这与我上面写的重新编写代码有关。我应该做哪些更改才能让 App.js 在启动时运行并且仍然能够访问我的其他 html View ?

谢谢

最佳答案

实现此目的的一种方法是将所有静态内容放入特定文件夹中,并添加重写规则以绕过重定向到 app.js

`

                <!-- All other URLs are mapped to the Node.js application entry point -->
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="app.js"/>
</rule>
`

关于c# - 以编程方式从命令提示符启动 Node js 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15362188/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com