如果更改任何文件,我如何执行我的茶隼服务器重启?而不只是停止?
我试过了
dnx --watch . kestrel
但服务器刚停止,我必须手动重新运行命令
我也尝试过使用npm watch命令,但这似乎只是绊倒了
watch 'dnx --watch . kestrel' .
答案 0 :(得分:5)
您可以使用一个名为dnx-watch的命令。在提出原始问题时它并不存在,但在2015年9月的beta 8中添加。您使用
安装它dnu commands install Microsoft.Dnx.Watcher
您只需将传递给dnx的命令传递给它即可运行它。所以,替换
dnx web
与
dnx-watch web
答案 1 :(得分:1)
我发现以下有关使用
中的nodemon的工作https://github.com/johnpapa/aspnet5-starter-demo#dnxmon
nodemon --ext "cs,json" --exec "dnx . kestrel"
答案 2 :(得分:0)
这是设计的。今天没有开箱即用的解决方案,因为文件监视器停止后自动重启服务器。
Visual Studio有一些特殊的代码可以监视进程并重新启动它。
但是,我们已an issue对此进行跟踪,我们计划在将来的迭代中解决此问题。
答案 3 :(得分:0)
虽然选择的解决方案较短,但我在grunt
该应用程序有一个前端和一个api后端。
首先有一个shell
任务用于启动api:
shell: {
api:{
options: {
execOptions : {
cwd: '..\\$working_directory'
},
callback : function (err, stdout, stderr, cb) {
restartServer('shell:api',err,cb);
}
},
command: function() {
return 'dnx --watch localfarm';
}
},
在我gruntfile
的顶部我定义了重启服务器的功能:
var restartServer = function (task, err, cb) {
var timeoutInSec = 30;
if (err === null)
timeoutInSec = 2;
grunt.log.write(task + ' Task ended. Retrying in ' + timeoutInSec + ' seconds');
setTimeout(function() {
grunt.log.write('retrying ' + task );
grunt.task.run(task);
cb();
}, timeoutInSec*1000); };
每次代码中的某些内容发生变化时,dnx --watch
进程都会自动终止。 Grunt
然后等待2秒钟并重新启动dnx
进程。如果dnx
失败,则等待30秒直到再次尝试。这让我有时间修复代码。
(在我的代码版本中,我还使用beep
在重新加载api时收到通知。)
要运行服务器场(前端和后端),我添加了一个启动多个线程的并发任务:
concurrent: {
...
farm: {
tasks: ['shell:api', 'serve'],
options: { logConcurrentOutput: true, limit: 10 }
}
...
}
答案 4 :(得分:0)
这个命令在windows上运行得更好(如果你定义了kestrel命令):
nodemon --ext" cs,json" --exec" dnx - watch kestrel"
> Blockquote
C:\Users\name\YoWebApp>**nodemon --ext "cs,json" --exec "dnx . kestrel"**
6 Oct 14:46:13 - [nodemon] 1.7.1
6 Oct 14:46:13 - [nodemon] to restart at any time, enter `rs`
6 Oct 14:46:13 - [nodemon] watching: *.*
6 Oct 14:46:13 - [nodemon] starting `dnx . kestrel`
System.InvalidOperationException: Unable to load application or execute command '.'. Available commands: kestrel, web, ef, mon.
at Microsoft.Dnx.ApplicationHost.Program.ThrowEntryPointNotfoundException(DefaultHost host, String applicationName, Exception innerException)
at Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args)
at Microsoft.Dnx.ApplicationHost.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env, FrameworkName targetFramework)
at Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, FrameworkName targetFramework)
at Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, FrameworkName targetFramework)
6 Oct 14:46:14 - [nodemon] app crashed - waiting for file changes before starting...
6 Oct 14:46:44 - [nodemon] restarting due to changes...
6 Oct 14:46:44 - [nodemon] starting `dnx . kestrel`
System.InvalidOperationException: Unable to load application or execute command '.'. Available commands: kestrel, web, ef, mon.
at Microsoft.Dnx.ApplicationHost.Program.ThrowEntryPointNotfoundException(DefaultHost host, String applicationName, Exception innerException)
at Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args)
at Microsoft.Dnx.ApplicationHost.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env, FrameworkName targetFramework)
at Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, FrameworkName targetFramework)
at Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, FrameworkName targetFramework)