Web 服务部署到生产服务器

Web Service Deployment to Production Server

我在本地机器上的 IIS 中有一个老式的 .NET Web 服务 运行:

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)

就像您发现的那样,它很容易实现。

但是,有一些危险信号,

  1. .asmx 太旧了,大多数人升级到 REST/Graph 基于 web API.
  2. 嵌套应用程序仍然很少见(或不必要)。在大多数情况下,您的目标应该是缩短 URLs。但由于是您的外部用户需要这种 URL 模式,您可能无法说服他们。