我的WCF服务使用WebInvoke属性并使用httpGetEnabled。
[OperationContract]
[WebInvoke(Method="POST", UriTemplate = "/Function1")]
void Function1(Stream input);
[OperationContract]
[WebInvoke(Method="POST", UriTemplate = "/Function2")]
void Function2( Stream input );
当我尝试使用https时,我无法访问UriTemplates。但是,我可以访问svc和wsdl。
<services>
<service behaviorConfiguration="SslBehavior" name="MyService">
<endpoint address="" binding="webHttpBinding" contract="IMyService" behaviorConfiguration="WebBehavior" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SslBehavior">
<serviceMetadata httpsGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
此服务托管在IIS 7中。是否有一些我遗漏的明显内容?我尝试了尽可能多的配置组合。当我尝试发布到其中一个WebInvoke链接时,我收到404错误。
另一家公司将发布此服务,这就是为什么它必须是RESTfull
修改
我在绑定节点中尝试了这个:
<webHttpBinding>
<binding name="SslBinding" transferMode="Streamed">
<security mode="None">
<transport clientCredentialType="None" />
</security>
</binding>
</webHttpBinding>
并在端点上设置BindingConfiguration。同样的问题:(
答案 0 :(得分:3)
尝试将安全模式设置为传输:
<bindings>
<webHttpBinding>
<binding name="SslBinding" transferMode="Streamed">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</webHttpBinding>