所以我转到项目属性,切换到使用本地IIS Web服务器,创建虚拟目录,然后再次按下CTRL+F5。然而,这个"HTTP错误404.3 - 未找到"的错误正在欢迎我。
因此,我的IIS7/Vista-64设置中缺少了一些东西。我可能遗漏了什么?
点击开始 -> 运行 cmd
,然后输入:
cd "\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
ServiceModelReg.exe -i
如果你第一次遇到在Windows 8和IIS 8.0上的问题,请确保激活Windows Communication Foundation HTTP Windows功能。
然而问题在于如何将ASP.Net重新注册到IIS中,下面进行了解释。
如果您使用的是64位机器,请始终使用Framework64路径:C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -iru
下面是来自Microsoft的说明:
http://download.microsoft.com/download/0/A/E/0AEB3BC1-506E-4954-8AB1-4FA2EE75985C/ReleaseNotes.docx
在尝试运行通过HTTP传输接收消息的服务时,您可能会收到类似以下错误的错误消息:
在“/WCFApplication”应用程序中发生服务器错误
无法从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.ServiceModel.Activation.HttpModule”。
描述:执行当前Web请求时发生未处理的异常。请查看堆栈跟踪以获取有关错误的更多信息以及其在代码中的源位置。 异常详细信息:System.TypeLoadException: 无法从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.ServiceModel.Activation.HttpModule”。
当在安装.NET Framework 4之后安装IIS,或者在安装IIS和.NET Framework 4之后安装WCF Http Activation模块的3.0版本时,可能会出现此错误。
解决此问题,您必须使用ASP.NET IIS注册工具(Aspnet_regiis.exe)注册正确版本的ASP.NET。这可以通过在运行aspnet_regiis.exe时使用-iru参数来实现,具体操作如下:
aspnet_regiis.exe -iru
值得注意的是,这里需要给予应有的信用:来源
<system.webServer>
<handlers>
<add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" />