C# 无法从网络获取元数据。tcp://127.0.0.1ServiceName
将服务配置创建为:C# 无法从网络获取元数据。tcp://127.0.0.1ServiceName,c#,.net,wcf,c#-4.0,C#,.net,Wcf,C# 4.0,将服务配置创建为: <system.serviceModel> <services> <service behaviorConfiguration="DefaultBehaviour" name="DocumentManagementService.SharePointToSQL"> <endpoint address=""
<system.serviceModel>
<services>
<service behaviorConfiguration="DefaultBehaviour"
name="DocumentManagementService.SharePointToSQL">
<endpoint address=""
binding="netTcpBinding" name="docManagementService"
contract="DocumentManagementService.ISharePointToSQL" />
<endpoint address="/mex"
binding="mexTcpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://127.0.0.1/DocManagementService" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="DefaultBehaviour">
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceMetadata httpGetEnabled="true" httpGetUrl="http://127.0.0.1" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
通过控制台托管应用程序时,我可以看到端点地址:
但是,当我尝试使用wcftestclient添加服务时,出现以下错误:
Error:
Cannot obtain Metadata from net.tcp://127.0.0.1/DocManagementService/mex If this
is a Windows (R) Communication Foundation service to which you have access,
please check that you have enabled metadata publishing at the specified address.
刚刚更新了托管应用程序的代码:
using (ServiceHost serviceHost = new ServiceHost(typeof(SharePointToSQL)))
{
serviceHost.Open();
foreach (var endPoints in serviceHost.Description.Endpoints)
{
Console.WriteLine(endPoints.Address);
}
Console.ReadKey();
serviceHost.Close();
}
使用block将控制台读取和主机关闭移动到内部并工作。另一个明智的做法是关闭服务,然后等待控制台读取。由于服务已经关闭,无法创建代理。问题是您立即关闭了主机(当使用块结束时-这就是使用块的目的)。@usr,是的,刚刚收到了
using (ServiceHost serviceHost = new ServiceHost(typeof(SharePointToSQL)))
{
serviceHost.Open();
foreach (var endPoints in serviceHost.Description.Endpoints)
{
Console.WriteLine(endPoints.Address);
}
Console.ReadKey();
serviceHost.Close();
}