我们有一个包含多个svc文件的现有WCF服务。
今天,突然间,其中一个svc文件不再有效:
我们尝试解决此问题时尝试了以下方法:
关于可能导致这种情况的任何想法?
答案 0 :(得分:0)
问题出在IIS的applicationHost.config
文件中:C:\Windows\System32\inetsrv\config
根据MSDN:
ApplicationHost.config是配置系统的根文件 当您使用IIS 7及更高版本时。它包括所有的定义 站点,应用程序,虚拟目录和应用程序池,如 以及Web服务器设置的全局默认值(类似于 machine.config和.NET Framework设置的根web.config。)
因此,一旦我们打开文件(您的普通xml配置文件),我们注意到应用程序的路径直接指向svc文件,而不是指向文件夹位置。像这样:
<application path="/[APP NAME]" applicationPool="ASP.NET V4.0 Integrated">
<virtualDirectory path="/" physicalPath="C:\Projects\[FOLDER PATH]\[APP NAME]\Service.svc" />
</application>
请注意physicalPath
属性(具体为Service.svc
):
path="/" physicalPath="C:\Projects\[FOLDER PATH]\[APP NAME]\Service.svc"
这就是导致问题的原因。
所以我们所要做的就是从路径中删除服务的名称,一切正常。像这样:
<application path="/[APP NAME]" applicationPool="ASP.NET V4.0 Integrated">
<virtualDirectory path="/" physicalPath="C:\Projects\[FOLDER PATH]\[APP NAME]" />
</application>