IIS 7无法识别svc文件

16
我正在尝试在IIS7上使用WCF发布Web服务。
我已经为该项目创建了一个网站,并根据MSDN建议创建了一个应用程序。我可以从创建的文件夹中在浏览器中打开HTML文件,但是如果我尝试访问我的服务的svc文件,则会收到404.3错误(由于扩展配置无法提供所请求的页面)。我读到了我应该运行servicemodelreg来安装svc文件的缺失处理程序。之后,我遇到了一个错误,称处理程序具有错误模块。
每次我都检查以下内容:
  • IIS已经启动
  • ASP.NET已经启动
  • svc文件有一个处理程序
我已经没有更多想法了...

你在事件日志中看到了什么? - RQDQ
您是否有一个 /bin 文件夹,服务二进制文件是否在其中? - John Saunders
1
尝试运行 aspnet_regiis.exe -i 并将应用程序的应用程序池设置为 Framework 4。 - vortexwolf
@vorrtex:是的,aspnet_regiis 是缺失的关键!很奇怪,因为我在我的电脑上执行了相同的步骤,但这个问题没有出现,但当我尝试在笔记本电脑上再次执行时,它出现了。无论如何,如果您将此作为答案发布,我会标记它! - Tenshiko
4个回答

27
在Windows 8上,运行DISM.exe以启用WCF
DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

如果您使用服务器管理器仪表板的“添加角色和功能向导”来设置所有内容,请不要忘记在WCF服务下勾选“HTTP激活”。

输入图像描述


2
请确保在角色和功能设置向导中的WCF功能列表下启用“HTTP激活”..谢谢! - smile.al.d.way
当您没有安装Visual Studio时,此方法适用于Windows Server 2012。 - Nik Todorov

20

如果在安装.NET Framework和Visual Studio之后安装了IIS,则会出现此问题,因此需要注册ASP.Net。如果首先安装IIS,则不会出现此类问题。

但解决方案很简单:打开 Visual Studio命令提示符并键入此命令。

aspnet_regiis.exe -i

这里有一个链接提供更详细的信息,包括该命令及其参数。


2
我在Windows 8上遇到了类似的问题。不幸的是,上述方法不被支持。您需要前往控制面板,打开或关闭Windows功能,并确保您需要的.NET 3.5和4.5下的功能已被选中。 - Jon
是的,在Windows 8中它已经改变了,但为什么呢?我不明白为什么微软会把像这样简单基础的东西变成一个复杂的添加/删除功能怪物,而且其中完全缺少.NET 4(它应该意味着勾选.NET 4.5就意味着.NET 4,但为什么要这么麻烦,而不是简单的aspnet_regiis命令)。 - Visar
@Visar 他们可能决定创建一个向导,以便人们可以看到用户界面。但是,他们没有将其作为替代方式添加并保留两种配置方式,而是删除了命令行工具。非常出乎意料。 - vortexwolf

14

按照以下步骤在Windows 10上启用IIS下的SVC文件处理:

  1. 按下Windows键+R(将弹出“运行”命令,输入optionalfeatures并按回车。
  2. 它会带来程序功能向导。请确保选择以下选项,如快照中所示。

按照以下快照中提到的步骤执行

快照1显示所需的Windows功能

快照2显示打开更多功能


这正是我所需要的!很棒的文章!对于图形+1 - JP Chapleau

3

为了在Windows 8上启用WCF,需要在管理员启动的Visual Studio命令提示符中运行以下命令:

DISM /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService
DISM /Online /Enable-Feature /FeatureName:WAS-ProcessModel
DISM /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment
DISM /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI
DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

我首先卸载了它(使用“DISM /Online /Disable-Feature”),然后重新安装,就可以工作了! - digiogo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接