我有一个自托管WCF服务,如下所示:
[ServiceContract]
public interface IService {
[OperationContract]
[WebGet]
List<Data> GetData();
//...and much more Methods
}
我的App.config看起来像这样:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<behaviors>
<serviceBehaviors>
<behavior name="MetaInformation">
<serviceMetadata httpGetEnabled="true"
httpGetUrl="http://localhost:8500/MetaInfo"
httpsGetBinding="" />
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="EndpointBehavior">
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MetaInformation" name="Library.WcfService.ServiceModel">
<endpoint address="http://localhost:8500/Service"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBindingSettings"
contract="Library.WcfService.IService"
bindingName="BasicHttpBindingSettings"
behaviorConfiguration="EndpointBehavior"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBindingSettings"
closeTimeout="00:50:00"
openTimeout="00:50:00"
sendTimeout="00:50:00"
maxBufferSize="524288"
transferMode="Streamed"
maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647"
messageEncoding="Text">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
<system.web>
<httpRuntime maxRequestLength="102400"/>
</system.web>
当我在本地计算机上运行此服务器和客户端应用程序时,它运行正常。 但是当我尝试在另一台PC上运行服务器应用程序时,我无法在客户端添加服务引用,因为我得到了这个:
405方法不允许元数据包含无法解析的引用:“http://192.168.178.54:8500/MetaInfo”。它不是一个 听http://192.168.178.54:8500/MetaInfo端点出现谁 可以接受这个消息。这通常是由不正确引起的 地址或SOAP操作
我几乎尝试了在互联网上找到的所有东西,但没有任何效果。 切换到IIS或使用其他协议应该是一个计划B,我想保持自己托管http。
请有人帮助我,我对这个问题感到绝望。
答案 0 :(得分:0)
您的操作合同上标有[WebGet]
属性,这意味着您尝试将服务公开为REST
。但是,您的服务使用basicHttpBinding
作为构建不受支持的通信渠道的方法,因为此绑定的内容类型为soap+xml
。在这种情况下,您需要使用WebHttpBinding
,这是唯一支持WCF Services
的静态实现并支持Xml
和Json
数据类型的绑定。