問題タブ [self-hosting]
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.
c# - WCFセルフホスティングを使用してコンソールアプリケーションをデバッグモードで実行していますか?
私はコンソール アプリケーション (Windows サービス インストーラーとしても機能する) でホストされている WCF サービスを持っています。
コンソール アプリケーションのクラスは次のようになります。
これは Windows サービスで実行するために作成されたものですが、(開発中に) デバッグ モードで通常のセルフホストとして実行できるようにするにはどうすればよいですか? または、実行時にこのサービスをデバッグできるようにするには、特別なプロジェクトを開始する必要がありますか?
編集:
既存の Windows サービス プロジェクトを使用することにしましたが、メインを次のように変更します。
.net - スコープ外になるとWCFServiceHostが開いたままになるのはなぜですか?
私は自分のWCF(自己ホスト型)コードを片付けていて、ServiceHostオブジェクトが最初にセットアップされた後、スコープ外になっていることに気付きましたが、それでも接続できました。
これをもう一度呼び出して再インスタンス化してもう一度開くと、エンドポイントに接続されているものがすでにあるというエラーが表示されます。アプリケーションがシャットダウンしたときにのみリリースされます。
Open()の呼び出しは、現在は管理されていない方法で開いたままにするために、より低いレベルで何かを実行すると想定することしかできません。しかし、私がここで物事を完全に誤解していない限り、これに関する情報を見つけることはできません。
そしてそれについて考えると、これは実際には接続がまだ開いているようには見えませんが、アプリを強制終了せずに接続に戻る(閉じるなど)方法はありません。それとも、これは問題ではないかもしれませんが、何も害がなければ、常に開いたままにしておくことができますか?
更新:それで、スコープ外になった後も開いたままになる理由についての私の最初の質問を説明しているので、Eiverの答えを受け入れました。しかし、私は今、これについていくつかのことを疑問に思っています(またはおそらく私のスレッドの経験不足)。第一に、それが開いている限り、私はこのcosについて悩んでいますか?それがすべて正しいことです。また、スレッドをスコープ内に保持してスレッドにアクセスする方法がある場合は、それも役立ちます。たぶん、このように設定すると(そして決してcloseを呼び出さないで)、呼び出しコードが単純になり(つまり、参照を保持する必要がなくなります)、静的メソッドでラップしてさらに単純な呼び出しを行うこともできます。すべてが少しかわすように聞こえます....うーん!
更新2:それで、この方法でそれを行うのは良くないことを知っていました。それは、ホストとそれが開始されたスレッドを制御できなくなったことを意味するからです。そのため、すべてをシングルトンとしてラップし、任意の時点(エラー、イベント、同じエンドポイントでのクローズ/再開など)でホストにアクセスでき、呼び出しを非常に単純にする(単純な静的メソッドのように)という利点があります。電話)。
dependency-injection - Web-Api統合テストのためにセルフホストをIoCと連携させるにはどうすればよいですか?
ここからヒントを得て、新しいWebApiプロジェクトのこの統合テストを考え出しました。残りのWebサービスを構築しようとしていますが、APIコンシューマーにリリースする予定のヘルパークライアントがあります。それExampleClientHelperがそこにあるタイプです。ああ、ところで、これはすべてValuesController、MVC4 Web Api Visual Studioプロジェクトのプロジェクトテンプレートで提供されるものにつながります-これを理解している間、私は物事を単純に保ちます。
ExampleClientHelper前述の参照例のすべての要求/応答を置き換えます。内部でRestSharpを使用しています。
上記のコードは、変更しない限り正常に機能しますValuesController。すなわち。暗黙のパラメーターなしのコンストラクターが残っています。
私が抱えている問題はValuesController、依存関係を要求するように変更すると、セルフホストサーバーがインスタンス化できないように見えることです。問題は、Autofac DependencyResolverを接続するかどうかに関係なく、ヘルパークライアントからの応答から同じ例外が発生することです。これは、応答のコンテンツで返されるものであり、RestSharpのおかげでJSONとして適切にフォーマットされています。
{"ExceptionType": "System.ArgumentException"、 "Message": "Type'Embed.ECSApi.RestServer.Controllers.ValuesController'にはデフォルトのコンストラクターがありません"、 "StackTrace":"atSystem.Linq.Expressions.Expression。 New(Type type)\ r \ n at System.Web.Http.Internal.TypeActivator.Create [TBase](Type instanceType)\ r \ n at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request、HttpControllerDescriptor controllerDescriptor 、Type controllerType) "}
したがって、明らかにセルフホストサーバーは作成しようとしていますValuesControllerが、作成できません。なんで?DependencyResolverを正しく配線したと思いました。代わりに、構成していない依存関係について文句を言うAutofac例外が発生することを期待しています。
c# - 自己ホスト型WCFサービス:ConcurrencyMode.Multipleですが、1つのスレッドのみを使用していますか?
私は、WINDOWSサービスでホストされる計算エンジンを開発するためにWCFを使用するための最初の一歩を踏み出しました。このサービスはうまく機能していますが、すべての呼び出しに1つのスレッドしか使用していないようですが、スケーラブルでマルチスレッドを使用する必要があります。
このアプリケーションの人々の非常に初期の段階であるため、コードなどのすべてのトレースを無視してください。
サービスの起動時に情報をメモリに読み取るサードパーティソフトウェア(COM)(ThirdParty.Initialise(strInit))を呼び出し、ProcessInformationを呼び出すたびに、指定されたXML文字列から計算結果が返されます。
これまでのところ、ServiceBehavior attsを何に設定しても、また使用する個別のコンシューマーの数に関係なく、すべての呼び出しは1つのスレッドを使用しているように見えます-誰か助けてもらえますか?
コードの概要:
構成:
windows - サービスを開始できません: アセンブリを読み込めません
WCF サービスをホストする Windows サービスをまとめようとしています。私のプロジェクト構造は次のとおりです。
- サービス
- Service.Contracts
- サービス.ホスト
- Service.Setup
Service.Host プロジェクトには ProjectInstaller が含まれ、Service.Setup プロジェクトには WindowsInstaller が含まれます。
現在、すべてが正常にビルドおよびインストールされていますが、サービスを開始しようとすると、イベント ログに次のメッセージが表示されてすぐに実行が停止します。
セットアップ プロジェクトの出力フォルダーを確認すると、Service.dll と Service.Contracts.dll の両方が表示されます... これは私を油断させます。すべてが正常にビルドされたときにこれをデバッグするにはどうすればよいですか? 何をすべきか?
dependency-injection - webApiがHttpSelfHostServerで実行されているときにhttpModuleを追加する方法はありますか?
私はMVC4webapiコントローラーを持っています。パラメーターのないコンストラクターはありません。したがって、Windsor依存関係リゾルバーを使用し、System.Web.Http.WebHostで作業する場合はすべて問題ありません。しかし、HttpSelfHostServerを使用しようとすると、例外メッセージが表示されます。
Looks like you forgot to register the http module Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule
To fix this add
<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
to the <httpModules> section on your web.config.
If you plan running on IIS in Integrated Pipeline mode, you also need to add the module to the <modules> section under <system.webServer>.
Alternatively make sure you have Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 assembly in your GAC (it is installed by ASP.NET MVC3 or WebMatrix) and Windsor will be able to register the module automatically without having to add anything to the config file.
明らかに、windsordiは彼のHttpModuleを登録できません。追加しようとしました
<system.web>
<httpModules>
<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor" />
</httpModules>
</system.web>
私のapp.configでは、運がありません。WebActivatorを試して、PreApplicationStartメソッドも使用できませんでした。自己ホスト型webapiアプリのhttpModuleを追加する方法はありますか?
.net - Protobuf.netとWCFセルフホスティングがnullリクエストを取得していますか?
IIS7とセルフホストの両方でホストするWCFサービスがあり、デフォルトのセルライザーを使用すると、両方でうまく機能します。
protobuf.netエンドポイントを実行すると、IIS7ホストに対してはうまく機能しますが、セルフホストに対して実行すると、最初のサービスメソッドへの要求としてnullを取得しますか?
どこを見ればいいですか?この問題を解決するために何が必要ですか?
よろしくお願いします
Edit1:App.config(セルフホスト)
wordpress - Wordpress.comホスティング
hostmonster.comにドメインを登録していて、ブログはwordpress.comにあります。ドメインをWordpressに移管したり(不可能だと思います)、ドメインのURLをWordpressブログにマッピングしたりするにはどうすればよいですか。
注:セルフホスティングは必要ありません。wordpress.comホスティングを使用したいと思います。
どのように私はそれを行うことができますか。
wcf - Factory(CustomHostServiceFactory)を実行していないセルフホステッドWCF?
IIS7 とセルフホストの両方に配置できる WCF サービスがあります。SVC ファイルは次のようになります。
問題は、サービスが自己ホストされている場合、CustomHostServiceFactory が実行されないことですか? これを機能させる方法はありますか?
IIS7 から実行すると正常に動作します。
c# - Windows サービスでセルフホストされた WCF での Silverlight クロスドメインの問題
ローカル マシンで完全に実行されている Silverlight アプリケーションがあり、WCF サービスを開発サーバー (Windows サービスで自己ホスト) から使用しています。
バグの根本原因を見つけるために、WCF サービスの 1 つをデバッグする必要があります。サービスにデバッグ/トレース情報を追加し、仮想マシンに (さらにはローカルに) インストールしましたが、それ以来、よく知られたクロスドメイン エラーが発生します。
「URI 'http://MyVMMachine:4096/MyService' へのリクエストを試行中にエラーが発生しました。これは、適切なクロスドメイン ポリシーを設定せずにクロスドメインの方法でサービスにアクセスしようとしたことが原因である可能性があります。または、SOAP サービスに適していないポリシーです。サービスの所有者に連絡して、クロスドメイン ポリシー ファイルを公開し、SOAP 関連の HTTP ヘッダーの送信が許可されていることを確認する必要がある場合があります。このエラーは、 InternalsVisibleToAttribute 属性を使用しない Web サービス プロキシの内部型。詳細については、内部例外を参照してください。"
開発サーバーから消費する場合は正常に動作しますが、サービスを開発マシンにインストールする場合、またはローカルにインストールする場合 (Windows サービスでも自己ホストされている場合) は機能しないため、これは奇妙です。
サービスの元のコードは次のとおりです。
このテーマに関する Carlos Figueira の記事を読んだ後、彼のアプローチを適用してサービスを変更しましたが、まだ機能していません。
何か案は???
ありがとう!