私はこのように、それは使用する必要があるendpointaddressと私のホストを作成します。は、なぜ私は "HTTPがURLのhttpを登録することができませんでした:// +:80/MyServiceで/" WCFの例外を得るのですか
Uri endpointAddress = new Uri("http://127.0.0.1:5555/MyService");
ServiceHost host = new ServiceHost(myServiceType, endpointAddress);
host.AddServiceEndpoint(implementedContract, basicHttpBinding, string.Empty);
しかしとき後で行うhost.Open();
「HTTPはURL http://+:80/MyService/を登録できませんでした。なぜなら、TCPポート80は別のアプリケーションによって使用されているためです」。結果は同じです。
host.AddServiceEndpoint(implementedContract, basicHttpBinding, endpointAddress);
なぜポート80で何をしようとしますか?これをどうすれば解決できますか?
更新 より完全なコードサンプルを提供しようとしている間に、私は原因を見つけました。過去に私はこの作業を取得するためのURLからポートを削除する必要があると思われるが、今それが問題の原因を正確に何
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.ExternalMetadataLocation = new Uri(this.ExternalMetadataLocation);
smb.HttpGetEnabled = true;
smb.HttpGetUrl = this.RemovePort(this.EndpointAddress);
host.Description.Behaviors.Add(smb());
次のように私はServiceMetadataBehaviorを追加しました。
Pratikが正しいです:メタデータが問題でした。もちろん、ポート80の問題は、そのポートを使って新しくインストールされたアプリケーションがあることです。
ありがとうございます、ありがとうございました、おしゃべり、
Miel。
AddServiceEndpointとhost.openの間のコードを含む完全なテストケースのコードを投稿できますか?異なるホスト変数、またはあなたの呼び出しのいずれかがエラーを出す可能性が高いようです。 –
@Paul +1は私により良い質問を書いてくれました。それが解決策を見つけることにつながった。 – Miel
ソリューションを投稿できますか? –