C# 如何解决一个问题;HTTP错误404.3-找不到“;错误?

C# 如何解决一个问题;HTTP错误404.3-找不到“;错误?,c#,visual-studio-2008,iis-7,wcf,http-status-code-404,C#,Visual Studio 2008,Iis 7,Wcf,Http Status Code 404,简单的问题。我启动VS2008并创建一个新的WCF服务应用程序。这将创建一个默认应用程序,其中有一些测试方法显示它是有效的。我按下CTRL+F5键,它确实可以工作!伟大的但是,它使用VisualStudio开发服务器,我不想支持它 因此,我转到项目属性,切换到使用本地IIS Web服务器,创建虚拟目录,然后再次按CTRL+F5。这个“HTTP错误404.3-找不到”错误正在回敬我 所以我的IIS7/Vista-64设置有问题。我可能缺少什么?单击开始->运行cmd并键入: cd "\Window

简单的问题。我启动VS2008并创建一个新的WCF服务应用程序。这将创建一个默认应用程序,其中有一些测试方法显示它是有效的。我按下CTRL+F5键,它确实可以工作!伟大的但是,它使用VisualStudio开发服务器,我不想支持它

因此,我转到项目属性,切换到使用本地IIS Web服务器,创建虚拟目录,然后再次按CTRL+F5。这个“HTTP错误404.3-找不到”错误正在回敬我


所以我的IIS7/Vista-64设置有问题。我可能缺少什么?

单击开始->运行
cmd
并键入:

cd "\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
ServiceModelReg.exe -i

然而,问题是将ASP.Net重新注册到IIS,这将在下面解释

此外,如果您在64位计算机上,请始终使用Framework64路径:C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet\u regiis.exe-iru

下面是微软的解释:

尝试运行通过HTTP传输接收消息的服务时,可能会收到类似以下错误:

“/wcfaapplication”应用程序中的服务器错误

无法从程序集“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激活模块的3.0版本,则可能会发生此错误

要解决此问题,必须使用ASP.NET IIS注册工具(Aspnet_regiis.exe,)注册正确版本的ASP.NET。这可以通过在运行aspnet_regiis.exe时使用–iru参数来实现,如下所示:

aspnet_regiis.exe-iru


值得一提的是:

我必须在Windows Server 2012的“添加角色服务”中勾选“HTTP激活”。

尝试通过扩展Internet信息服务来安装IIS,然后检查ASP.Net 3.5或ASP.Net 4.5和ISAPI。。。。在世界的根上。。。。。。。。。
如果您是第一次遇到此问题,请查看图片以获得更多帮助。使用Windows 8和IIS 8确保激活<强> Windows通信基础HTTP<强> Windows功能。p>
  • 进入控制面板,选择“程序和功能”
  • 从提升手侧菜单中选择“打开或关闭Windows功能”
  • 展开“.Net Framework 3.5(包括.Net 2.0和3.0)”项
  • 最后选择<强>“Windows通信基础HTTP激活”
  • 享受您的WCF服务

  • 我尝试使用各种标志运行ServiceModelReg和aspnet_regiis.exe,并添加了HTTP激活功能,但仍然无法运行。最终成功的是将以下处理程序手动添加到我的web.config文件中

    <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" />
    
    
    

    我的项目运行的是.Net 3.5,IIS是7.5和7.0。

    找到了解决我问题的方法。将此问题留给其他人,以便添加其他可能的选项来解决此“问题”。将此问题写下来作为答案,并将其标记为已接受,以使其更清楚地表明不起作用。我们还用3.0吗?还是链接过时了?你的回答有点晚了…:-)你的答案才是真正的答案,谢谢。确保对4.0也这样做。这是消除404.3错误的正确“非黑客”方法