Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将Web服务部署到生产服务器_Asp.net_.net_Web Services_Iis_Asmx - Fatal编程技术网

Asp.net 将Web服务部署到生产服务器

Asp.net 将Web服务部署到生产服务器,asp.net,.net,web-services,iis,asmx,Asp.net,.net,Web Services,Iis,Asmx,我有一个旧式的.NET Web服务在本地计算机上的IIS中正确运行: 我添加了一个Web引用,并将其属性设置为dynamic,这样我就可以简单地更改Web.config文件中的URL。在部署到临时服务器之前,我对其进行了如下配置: <client> <endpoint address="http://staging.myserver.net/WSTest/WSTest/Service1.asmx" binding="basicHttpBinding" bindin

我有一个旧式的.NET Web服务在本地计算机上的IIS中正确运行:

我添加了一个Web引用,并将其属性设置为dynamic,这样我就可以简单地更改Web.config文件中的URL。在部署到临时服务器之前,我对其进行了如下配置:

<client>
  <endpoint address="http://staging.myserver.net/WSTest/WSTest/Service1.asmx"
    binding="basicHttpBinding" bindingConfiguration="Service1Soap"
    contract="ServiceReference1.Service1Soap" name="Service1Soap" />
</client>

我可以像这样在服务器上访问它,它可以工作:

但是,我需要解决如下问题,因为这是外部客户端访问它的方式:


我看不出我的暂存服务器上的IIS配置设置有任何问题。我遗漏了什么吗?

一般来说,您可以在网站下自由设置应用程序,即使是嵌套方式

Website
|
--Application MyService
  |
  --Application MyService (here you host the .asmx)
就像你发现的,这很容易实现

然而,也有一些危险信号

  • .asmx太旧了,大多数人升级到基于REST/Graph的web API
  • 嵌套应用程序仍然很少(或不必要)。在大多数情况下,您应该针对短URL。但是,因为是您的外部用户需要这样的URL模式,所以您可能没有办法说服他们

  • 如果您确实需要“/MyService/MyService/”,请在该网站下设置嵌套应用程序。Duh!成功了。我为更高级别的文件夹添加了一个虚拟目录,然后将子文件夹转换为一个应用程序,它就工作了。这样做对吗?如果是的话,把它作为答案贴出来,我会把它标记为接受。非常感谢。