有没有办法让客户端使用wsdl,但只隐藏其xml,它在Web浏览器中打开时显示方法。
例如,以下内容适用于asmx:
<system.web>
<webServices>
<wsdlHelpGenerator href="Blank.aspx"/>
</webServices>
</system.web>
对于svc有什么替代方案吗?
删除serviceMetadata或将httpGetEnabled更改为false会使wsdl无法使用,这不是我想要的。我只是想在网络浏览器中打开它的内容时不可见。
答案 0 :(得分:0)
如果您想要将用户重定向到其他地址,如果他/她请求您的svc
文件,您可以使用rewrite
,如:
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Redirect to Blank" stopProcessing="true">
<match url="^(.+wsdl.+)/?$" />
<action type="Redirect" url="http://yourDomain/Blank.aspx" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
如果yourDomain/Blank.aspx
请求,则应将用户重定向到wsdl
但应该有另一种方法,但我已经在我的系统上进行了测试,它运行良好。
只需在服务的配置文件(服务器端)中添加此配置。
<强>更新强>
您还可以使用<match url="\b(wsdl|singleWsdl|svc)\b" />
重定向包含svc
或wsdl
或singleWsdl
的网址。
答案 1 :(得分:0)
这是正确的方向,但是特定的正则表达式和动作并不完全符合我的要求
1)http:// {domain} / {service} .svc - &gt; https:// {domain} /blank.aspx(好)
2)http:// {domain} / {service} .svc?wsdl - &gt; (当我按F12时显示错误,因为它无法找到blank.html页面)
3)http:// {domain} / {service} .svc?singleWsdl - &gt; (不改变)
4)https:// {domain} / {service} .svc - &gt; (不改变)
5)https:// {domain} / {service} .svc?wsdl - &gt; (不改变)
6)https:// {domain} / {service} .svc?singleWsdl - &gt; (不改变)