https 不显示 wsdl 页面 (WCF)
https not showing wsdl page (WCF)
我已关注 MSDN 站点以创建 WCF(4.5,使用简化配置)Web 服务的 https 站点
https://msdn.microsoft.com/en-us/library/hh556232(v=vs.110).aspx
当我导航到 http
或 https
的网站时。它向我展示了登陆页面(显示 'you have created a service' 并指向 wsdl 等的页面),所以我知道我的证书没问题。
但是,用于查找 wsdl 的 Web 服务登录页面中显示的 link 显示为 http://
而不是 https://
,当我尝试导航至 https://example.com?singleWsdl
我得到的只是同一个欢迎页面,而不是 wsdl。
http
一切正常。
这是我为支持 https
而更改的条目。还有什么我需要做的吗?我没有做任何代码更改。
<basicHttpBinding>
<binding name="HttpBinding" maxBufferPoolSize="2147483647"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647" messageEncoding="Text">
<readerQuotas maxDepth="2000000"
maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647"
/>
</binding>
<binding name="HttpsBinding" maxBufferPoolSize="2147483647"
maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
<readerQuotas maxDepth="2000000"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"
/>
</binding>
</basicHttpBinding>
<protocolMapping>
<add scheme="http" binding="basicHttpBinding" bindingConfiguration="HttpBinding" />
<add scheme="https" binding="basicHttpBinding" bindingConfiguration="HttpsBinding" />
</protocolMapping>
谢谢。
用这个参数激活ServiceMetadata
怎么样?
<serviceBehaviors>
...
<serviceMetadata httpsGetEnabled="true"/>
...
</serviceBehaviors>
来源:https://msdn.microsoft.com/en-us/library/ms731317(v=vs.110).aspx#Anchor_1
查看他们示例的结尾(我似乎无法将其作为引述)
您的端点是什么样的?我相信对于 https,您需要一个 mexHttpBinding 端点。类似于:
<endpoint address="mex" binding="mexHttpsBinding" name="MexHttpsBindingEndpoint" contract="IMetadataExchange" />
我已关注 MSDN 站点以创建 WCF(4.5,使用简化配置)Web 服务的 https 站点 https://msdn.microsoft.com/en-us/library/hh556232(v=vs.110).aspx
当我导航到 http
或 https
的网站时。它向我展示了登陆页面(显示 'you have created a service' 并指向 wsdl 等的页面),所以我知道我的证书没问题。
但是,用于查找 wsdl 的 Web 服务登录页面中显示的 link 显示为 http://
而不是 https://
,当我尝试导航至 https://example.com?singleWsdl
我得到的只是同一个欢迎页面,而不是 wsdl。
http
一切正常。
这是我为支持 https
而更改的条目。还有什么我需要做的吗?我没有做任何代码更改。
<basicHttpBinding>
<binding name="HttpBinding" maxBufferPoolSize="2147483647"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647" messageEncoding="Text">
<readerQuotas maxDepth="2000000"
maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647"
/>
</binding>
<binding name="HttpsBinding" maxBufferPoolSize="2147483647"
maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
<readerQuotas maxDepth="2000000"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"
/>
</binding>
</basicHttpBinding>
<protocolMapping>
<add scheme="http" binding="basicHttpBinding" bindingConfiguration="HttpBinding" />
<add scheme="https" binding="basicHttpBinding" bindingConfiguration="HttpsBinding" />
</protocolMapping>
谢谢。
用这个参数激活ServiceMetadata
怎么样?
<serviceBehaviors>
...
<serviceMetadata httpsGetEnabled="true"/>
...
</serviceBehaviors>
来源:https://msdn.microsoft.com/en-us/library/ms731317(v=vs.110).aspx#Anchor_1
查看他们示例的结尾(我似乎无法将其作为引述)
您的端点是什么样的?我相信对于 https,您需要一个 mexHttpBinding 端点。类似于:
<endpoint address="mex" binding="mexHttpsBinding" name="MexHttpsBindingEndpoint" contract="IMetadataExchange" />