私は wcf サービスを持っており、サービスのホストとしてコンソール アプリを使用しました。次のようなベースアドレスを使用する場合: <baseaddres ="http://ipaddress:8080/" />
. Web ブラウザーでサービスの動作を確認すると、サービスの WSDL を開くことができ、正常に動作します。
しかし、ポート番号を別のものに変更すると。サービスホストは正常に起動します (使用されているポート番号やその他の例外はありません)。サービスが Web ブラウザーを介して実行されているかどうかを確認しようとすると、サービスが表示されません。最終的に、私のクライアントもサービスを見つけることができませんでした。
app.config 構成
<services>
<service name="Natatorium_WCF.NatatoriumService"
behaviorConfiguration="ServiceBehavior">
<endpoint address="NatatoriumService"
binding="wsHttpBinding"
contract="Natatorium_WCF.INatatoriumService"
bindingConfiguration="wsHttpBindingConfig">
</endpoint>
<endpoint address="NatatoriumService"
binding="netTcpBinding"
contract="Natatorium_WCF.INatatoriumService"
bindingConfiguration="netTcpBindingConfig" >
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://[ServerName]:[PortNO.1]"/>
<add baseAddress="net.tcp://[ServerName]:[PortNO.2]"/>
</baseAddresses>
</host>
</service>
</services>
これは、サービス (コンソール アプリケーション) を開始するためのホスト コードです。
static void Main(string[] args)
{
ChangeServerConfigFileAttributeValue("8080", "8090");
using (ServiceHost host = new ServiceHost(typeof(Natatorium_WCF.NatatoriumService)))
{
host.Open();
Console.WriteLine("Listening...");
Console.ReadLine();
}
}