同じコントラクトの異なるWCFサービス実装をホストする汎用ホストプロセス(WinForm)を作成しようとしています。最初のアドレスを実行すると問題なく動作しますが、別のアドレスを(並列に)起動すると、同じアドレスを2回使用するとスローされます(アドレスとポート)->パスは異なります。
private bool InitializeServiceHost()
{
bool isInitialized = true;
try
{
Log.InfoFormat("Loading service DLL {0} and class {1}", _dllPath, _serviceClassName);
var asm = Assembly.LoadFile(_dllPath);
_service = (IGfnService) asm.CreateInstance(_serviceClassName);
if (_service == null)
throw new ApplicationException(string.Format("Could not instansiate {0} from DLL {1}", _serviceClassName, _dllPath));
_service.Init(_myGuidStr);
Uri uri = new Uri("net.tcp://localhost:9085/GfnService/" + _myGuidStr);
var host = new ServiceHost(_service, uri);
Log.InfoFormat("About to open host, State: {0}, URI: {1} ", host.State, uri);
host.Open();
_serviceUri = uri.ToString();
Log.InfoFormat("Gfn service started successfully, State: {0}, URI: {1} ", host.State, uri);
}
catch (Exception ex)
{
Log.Error(ex.Message, ex);
isInitialized = false;
Application.Exit();
}
return isInitialized;
}
どんな助けでもありがたいです....