我刚刚学习wcf,我尝试创建一个WCF服务,但我一直得到这个例外:
未处理的异常:System.ServiceModel.EndpointNotFoundException:没有 端点侦听
http://localhost:8733/Person/
,可以接受该消息 GE。这通常是由错误的地址或SOAP操作引起的。见InnerExcept 离子,如果存在,更多细节。 ---> System.Net.WebException:无法连接 ct到远程服务器---> System.Net.Sockets.SocketException:没有连接c 应该是因为目标机器主动拒绝它127.0.0.1:8733
我首先创建了一个WCF服务库。我在这里定义了我的服务合同和数据合同。并将端点配置为如下所示:
<service name="SelfHosting.PersonContract">
<endpoint address="" binding="basicHttpBinding" contract="SelfHosting.IPersonContract">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733/Person/" />
</baseAddresses>
</host>
</service>
这两个端点已经添加了我只是根据我的需要配置它们。我不确定mex端点是用于什么所以我跳的是有人可以告诉我。
然后我创建了一个控制台应用程序,并添加了对该服务的引用。我已初始化了该服务的实例,然后我尝试调用它:
static PersonContractClient client = new PersonContractClient();
static void Main(string[] args)
{
var persons = client.GetPersons();
foreach (var personData in persons)
{
Console.WriteLine(personData.Name);
Console.WriteLine(personData.Email);
}
}
我没有在客户端上设置任何端点,因为据我所知,当您添加对服务的引用时,它们会自动添加。这是在我添加引用之后添加的:
<endpoint address="http://localhost:8733/Person/" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IPersonContract" contract="PersonNamespace.IPersonContract"
name="BasicHttpBinding_IPersonContract" />
我的解决方案还包含另一个包含数据的项目,我使用Entity Framework获得了该数据。我不知道这是否与问题有关。
我在这里做错了什么?
答案 0 :(得分:0)
当我尝试在控制台应用程序中使用自托管创建双工wcf通信时,我遇到了类似的问题。按照这个例子http://adamprescott.net/2012/08/15/a-simple-wcf-service-callback-example/说清楚了。通常会收到错误
&#34;未处理的异常:System.ServiceModel.EndpointNotFoundException:http://localhost:8733/Person/没有可以接受消息的端点监听。这通常是由错误的地址或SOAP操作引起的。有关详细信息,请参阅InnerExcept ion(如果存在)。 ---&GT; System.Net.WebException:无法连接到远程服务器---&gt; System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它127.0.0.1:8733"
在尝试在客户端控制台应用程序中发现服务引用之前,您需要通过右键单击文件夹位置中的.exe来启动服务的可执行文件(.exe)。将uri复制到服务app.config中的baseaddress中并粘贴到添加服务引用对话框中,然后单击ok ...修复它。我希望这有助于其他人,因为这个问题有点老了。
答案 1 :(得分:0)
而不是&#39; localhost&#39;在url中使用端点的ip地址。