Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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
C# WCF服务的URL重写问题_C#_Web Services_Wcf_Iis_Rewrite - Fatal编程技术网

C# WCF服务的URL重写问题

C# WCF服务的URL重写问题,c#,web-services,wcf,iis,rewrite,C#,Web Services,Wcf,Iis,Rewrite,我是一个重写现有公共端点以托管在IIS中的项目的最后一名。我们当前的实现是在IIS7之前编写的,是一个自行开发的托管应用程序 我还不知道如何让URL重写功能正常工作,以便我们能够无缝地将现有客户转移到新的端点。在运行旧应用程序的同时运行新的端点,我遇到了一些问题 我认为这会很好: 传统URL: 新网址: web.config中的规则: <rule name="Test"> <match url="2.0.22/ServiceA" /> <acti

我是一个重写现有公共端点以托管在IIS中的项目的最后一名。我们当前的实现是在IIS7之前编写的,是一个自行开发的托管应用程序

我还不知道如何让URL重写功能正常工作,以便我们能够无缝地将现有客户转移到新的端点。在运行旧应用程序的同时运行新的端点,我遇到了一些问题

我认为这会很好:

传统URL:

新网址:

web.config中的规则:

<rule name="Test">  
  <match url="2.0.22/ServiceA" />  
  <action type="Rewrite" url="2.1.22/ServiceB.svc" />  
</rule>
因此,我关闭了遗留服务,启动了我的客户端,并将其指向遗留服务URL,但我得到一个错误,即没有端点侦听。这对我来说很有意义,因为该URL已由我们的传统应用程序注册,但不可用:

没有端点在侦听 这可以接受这个信息。 这通常是由不正确的地址或SOAP操作引起的。看见 有关详细信息,请参阅InnerException(如果存在)

因此,我认为如果我将IIS中新端点的绑定端口更改为https默认端口,它将起作用-

新网址: [与旧版相同]/2.1.22/ServiceB.svc

这会提示IIS向我发出警告,说明绑定已被IIS以外的产品使用,我可能会覆盖地址/端口组合的现有证书。因此,我说“好”,并将证书重新绑定到443端口,以便更好地测量,但当我将客户端指向旧URL时,会出现类似的错误,但措辞有点不同:

位于的HTTP服务为 不可用的这可能是因为服务太忙或 未找到在指定地址侦听的终结点。请 请确保地址正确,然后再次尝试访问该服务 稍后

我觉得我已经尝试了所有东西的组合——通配符匹配、路径等等,但我显然遗漏了一些东西。在这个问题上,我将不胜感激


*此外,是否可以在不同的服务器上托管IIS端点并使用URL重写?

通过进一步研究,我确定这是不可能的:

您只能在同一站点和同一应用程序中重写URL 游泳池