Castle Windsor(v3)を使用して依存性注入パターンで実装された.NET4.0WCFサービスがあります。このサービスはIIS7でホストされており、ローカルで実行する場合はVisual StudioDevelopmentServerを使用します。私の開発サーバーは、サービスに特定のポートを割り当てます。
ここで、ベースアドレスを追加しないと、CastleWindsorから次のような例外が発生します。
WebHttpBindingをバインドしているエンドポイントのスキームhttpに一致するベースアドレスが見つかりませんでした。登録されているベースアドレススキームは[]です。
ただし、開発者サーバーと同じポートでローカルホストアドレスを割り当てると、ポートの競合が発生します。
この場合、なぜベースアドレスが必要なのですか?また、ポートの競合をどのように処理しますか?
これが私のCastleWindsor関連のコードです。コンテナは、Global.asax.csファイルのApplication_Start()に作成されます。
public class ServiceInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.AddFacility<WcfFacility>()
.Register(Component.For<IMyService>().ImplementedBy<MyService>().AsWcfService<IMyService>().IsDefault()
);
}
}
また、私はいくつかのサービスをホストすることに興味がありません。1つだけです。