我的本地计算机上有一个旧式的.NET Web服务在IIS中正确运行:
http://localhost/MyService/MyService/Service1.asmx
我添加了一个 Web 引用并将其属性设置为动态,以便我可以简单地更改 Web.config 文件中的 URL。在部署到暂存服务器之前,我对其进行了以下配置:
<client>
<endpoint address="http://staging.myserver.net/WSTest/WSTest/Service1.asmx"
binding="basicHttpBinding" bindingConfiguration="Service1Soap"
contract="ServiceReference1.Service1Soap" name="Service1Soap" />
</client>
我可以像这样在服务器上访问它,它可以工作:
http://staging.myserver.net/MyService/service1.asmx
但是,我需要它像下面这样解决,因为这是外部客户端访问它的方式:
http://staging.myserver.net/MyService/MyService/service1.asmx
我看不出我的暂存服务器上的 IIS 配置设置有什么问题。我错过了什么吗?
一般来说,您可以自由地在网站下设置应用程序,甚至可以以嵌套方式。
Website
|
--Application MyService
|
--Application MyService (here you host the .asmx)
就像你发现的那样,这很容易实现。
但是,有一些危险信号,
- .asmx太旧了,大多数人升级到基于REST/Graph的Web API。
- 嵌套应用程序仍然很少见(或没有必要(。在大多数情况下,您应该瞄准短 URL。但是,由于需要这种URL模式的是您的外部用户,因此您可能没有办法说服他们。