繁体   English   中英

IIS7为什么为端点加载错误的WCF服务程序集?

[英]Why is IIS7 Loading Wrong WCF Service Assembly for Endpoint?

我试图在同一服务器上托管同一WCF服务的两个版本。 有问题的两个服务程序集具有相同的版本号,仅内容有所不同。 但是,它们位于两个不同的物理位置,该位置由两个单独的IIS站点中的两个单独的(但名称相同)虚拟目录指向。 每个站点都绑定到一个不同的主机名,并且我正在测试的应用程序配置为将请求发送到正确的主机(我正在使用hosts文件来覆盖域名解析。)此外,承载此服务的每个站点使用一个单独的(但配置相同)的应用程序池。

我认为所有这些措施足以消除IIS方面的任何可能的混乱,即当我向特定的终结点URL发送请求时,我试图执行哪个程序集。 但是,对第二个站点的请求将继续由第一个站点指向的程序集版本处理。 我的Visual Studio调试会话附加到当前正在运行的每个w3wp.exe实例,从而消除了调试错误的应用程序池的可能性。 当我为该服务的每个版本拉出源代码文件时,两个文件中的断点都表明符号已加载并且将被击中(尽管在我关闭IIS并删除了以下临时ASP.Net文件后,此符号已更改)服务。)

让人感到奇怪的是,我使用相同的方案成功运行和调试了同一Web应用程序的两个版本,并且一切正常。 唯一的区别似乎是一对虚拟目录托管Web应用程序,而另一对虚拟目录托管WCF服务。

当我查看“模块”面板时,它指示正在加载的程序集的版本来自临时ASP.NET文件夹。

谁能解释为什么IIS加载有问题的程序集的错误版本? 它与Temporary ASP.Net文件夹中进行的缓存有关吗?

为了确认是否命中了正确的端点,我关闭了第一个站点,然后再次尝试了该请求。 我收到的异常清楚地表明第二个站点的端点未受到攻击。

现在,我只需要弄清楚为什么忽略了项目的web.config中的终结点元素,而支持在machine.config中定义的终结点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM