C# WCF服务文件不可见
我们有一个包含多个svc文件的现有WCF服务 今天,突然之间,其中一个svc文件不再工作:C# WCF服务文件不可见,c#,wcf,iis,C#,Wcf,Iis,我们有一个包含多个svc文件的现有WCF服务 今天,突然之间,其中一个svc文件不再工作: 该页面在IIS内容视图中不可见(尽管其他svc文件 是) 导航到页面时,返回404错误 该文件已存在,并且在Visual Studio的解决方案资源管理器中可见 在不同的开发机器上,一切都正常工作 为解决该问题,我们尝试了以下方法: 已成功创建并导航到其他svc文件-这使我们相信IIS配置是正确的 删除并重新添加有问题的页面。不起作用 重新启动机器 重新启动IIS 你知道是什么导致了这种情况吗?问
- 该页面在IIS内容视图中不可见(尽管其他svc文件 是)
- 导航到页面时,返回404错误
- 该文件已存在,并且在Visual Studio的解决方案资源管理器中可见
- 在不同的开发机器上,一切都正常工作
- 已成功创建并导航到其他svc文件-这使我们相信IIS配置是正确的
- 删除并重新添加有问题的页面。不起作用
- 重新启动机器
- 重新启动IIS
你知道是什么导致了这种情况吗?问题出在IIS的
applicationHost.config
文件中,文件位于这里:C:\Windows\System32\inetsrv\config
根据:
ApplicationHost.config是配置系统的根文件
当您使用IIS 7及以上版本时。它包括所有的定义
站点、应用程序、虚拟目录和应用程序池,如
以及web服务器设置的全局默认值(类似于
machine.config和根web.config(用于.NET Framework设置)
因此,一旦打开该文件(您的常规xml配置文件),我们注意到应用程序的路径直接指向svc文件,而不是文件夹位置。像这样:
<application path="/[APP NAME]" applicationPool="ASP.NET V4.0 Integrated">
<virtualDirectory path="/" physicalPath="C:\Projects\[FOLDER PATH]\[APP NAME]\Service.svc" />
</application>
<application path="/[APP NAME]" applicationPool="ASP.NET V4.0 Integrated">
<virtualDirectory path="/" physicalPath="C:\Projects\[FOLDER PATH]\[APP NAME]" />
</application>
这就是造成问题的原因
所以我们所要做的就是从路径中删除服务的名称,然后一切正常。像这样:
<application path="/[APP NAME]" applicationPool="ASP.NET V4.0 Integrated">
<virtualDirectory path="/" physicalPath="C:\Projects\[FOLDER PATH]\[APP NAME]\Service.svc" />
</application>
<application path="/[APP NAME]" applicationPool="ASP.NET V4.0 Integrated">
<virtualDirectory path="/" physicalPath="C:\Projects\[FOLDER PATH]\[APP NAME]" />
</application>