私はWindows用のC#で書かれたサービスを持っています。私はそれをLinux上で実行する必要があります。私は潜在的にJavaやC++のコードを書き直すことを検討してきましたが、それをやり遂げる可能性はありますが、中間的な解決策として、プロジェクトをMonoまたは.NET Coreに移植することを検討しています。重要なのは、それはかなり小さいアプリケーションだから、必要なコード変更を行うことはそれほど大きな仕事ではないはずです。LinuxのMonoまたは.NETコアへのC#ポート
サービスは、特定のURLエンドポイントをリッスンしてタスクを実行します。以下のコードサンプルに基づいて
例:実際には
http://localhost:5000/checkStatus?configId=1234
、私はほとんどそれがこのセクションのために期待してコンパイルできます。この1つのセクションは、残りのビルドエラーをすべて生成しています。私はWCFサービスがまだ.NETコアで利用できないことを理解しています。だから私はこれに代わるものを模索してきましたが、.NET CoreのLinux上で動作するものには苦労しています。また、完全なNGINXまたはApacheサーバーで、全体またはshoehorningを書き換えることに等しい何かを実装することを避けたい。
namespace CheckService
{
[ServiceContract]
interface IService
{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
string checkStatus(string configId);
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
string echo(string value);
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
string version();
}
}
私はWCFに慣れたことがないので、このプロジェクトはもともと誰かによって書かれたものです。
ここは私のproject.jsonです。私はそこに不必要なものや間違ったものがあるかもしれないことを知っています。私はたくさんのテストを行っています:
{
"buildOptions": {
"emitEntryPoint": true,
"debugType": "portable"
},
"dependencies" : {
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"ServiceStack": "4.5.4",
"System": "4.1.311.2",
"System.IO": "4.3.0",
"System.IO.Pipes": "4.0.0",
"System.Collections": "4.0.11",
"System.Data.Common": "4.0.0",
"System.Data.SQLite": "1.0.0",
"System.ServiceModel": "1.0.0",
"System.ServiceModel.Web": "1.0.0",
"System.ServiceModel.Primitives": "4.3.0",
"System.ServiceModel.Security": "3.9.0",
"System.ServiceModel.Http": "4.0.0",
"slf4net.log4net": "0.1.32.1"
},
"frameworks": {
"net461": {
"frameworkAssemblies": {
"System.Runtime.Serialization": "4.0.0.0",
"System.ServiceModel": "4.0.0"
}
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview2-final"
}
},
"scripts": {
"postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
}
}
これを行う方法はありますか?
ありがとう、私はこれが最良のソリューションかもしれないと思います。 – Chris