質問を投稿する前に、Stackoverflow で多くの回答を確認しました。どの回答も私の問題を解決していないようでした。シンプルな WCF サービスを作成し、TCP バインディングを使用してコンソール アプリケーションでホストしました。
私のホスト App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding closeTimeout="00:01:00" openTimeout="00:01:00" maxBufferSize="2147483647" maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647" transferMode="Buffered">
<security mode="None">
<message clientCredentialType="None"/>
<transport clientCredentialType="None"
protectionLevel="None" />
</security>
</binding>
</netTcpBinding>
</bindings>
<services>
<service behaviorConfiguration="mexbehavior" name="EmailService.PAEmail">
<endpoint address="MailService" binding="netTcpBinding" contract="EmailService.IPAEmail" />
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8090/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="mexbehavior">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
私の契約:
[ServiceContract]
public interface IPAEmail
{
[OperationContract]
void SendMail();
}
public class PAEmail : IPAEmail
{
public void SendMail()
{
}
}
私のホスト:
static void Main(string[] args)
{
using (ServiceHost obj = new ServiceHost(typeof(EmailService.PAEmail)))
{
obj.Open();
Console.WriteLine("Host Started at {0}", DateTime.Now.ToString());
}
Console.ReadLine();
}
ホストは私のPCで実行されています。クライアントからサービス参照を追加しようとすると、次のエラーが表示されます。
URI プレフィックスが認識されません。メタデータに解決できない参照が含まれています: 'net.tcp://localhost:8090/'。net.tcp://localhost:8090/ に接続できませんでした。接続の試行は、00:00:04.0092984 の期間継続しました。TCP エラー コード 10061: ターゲット マシンがアクティブに拒否したため、接続できませんでした 127.0.0.1:8090。ターゲット マシンがアクティブに拒否したため、接続できませんでした 127.0.0.1:8090 サービスが現在のソリューションで定義されている場合は、ソリューションをビルドして、サービス参照を再度追加してみてください。
ここで何が欠けていますか?