問題タブ [rust-actix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1521 参照

docker - docker 内の Rust actix_web が達成できないのはなぜですか?

Rust プログラムの Docker コンテナを作成しようとしています。

Dockerfile

実行するコマンド:docker run -it -p 8080:8080 rust_rest_api/dev

しかし、外部からのカールは、つまり、チャネルの反対側で拒否されcurl -i -X POST -F files[]=@img.png 127.0.0.1:8080/uploadますcurl: (56) Recv failure: Соединение разорвано другой стороной

しかし、コンテナ内:

ただし、docker なしでプログラムを実行すると、適切に機能し、curl からの同じ要求を適切に処理します。

そしてコンテナ内:

外部からの問題は何ですか?

0 投票する
1 に答える
676 参照

rust - actix-web を Windows サービスとして実行する際の問題

windows-serviceを使用して actix Web アプリを実行しようとしています。優れた API を提供し、ほとんどの場合動作します。サービスを問題なく開始できます。ただし、サービスを停止しようとすると、次のエラーが表示されます: Error 109: The pipe has been ended(ただし、サービスは停止します)。

私は主に に提供されている例を使用してwindows-serviceいますが、関連するコードは次のとおりです (コンテキストとすべてのラッパー関数については、https://github.com/mullvad/windows-service-rs/blob/master/examples/を確認してください)。 ping_service.rs ):

を に入れるとSystem::stopthread::spawn別のエラーが発生します: The service did not return an error. This could be an internal Windows error or an internal service error。この場合、サービスは停止しません。

いくつかのログを記録しましたが、コードが を通過したようには見えませんsys.run().unwrap()。これは奇妙です。

何かご意見は?これまで Windows Service API を使用したことがないため、何をしているのかよくわかりません。

編集

主な問題が何であるかを理解しました。サービスを停止する前に、サービスが停止したことを Windows に通知する必要があります。私はそれを機能させるために不格好な方法をまとめました:

ここshutdown_signalAtomicBool、イベント ハンドラで I を true に設定します。代わりに、何らかの方法でこれを行うことができるかどうかを確認しますactix_rt