How to solve a "HTTP Error 404.3 - Not Found" error?
Asked Answered
W

7

21

Simple problem. I start up VS2008 and create a new WCF Service application. This will create a default application with a few test methods showing it works. I press CTRL+F5 and it does indeed work! Great! However, it uses the Visual Studio Development server, which I don't want to support.

So I go to the project properties, switch to using a local IIS Web server, create the virtual directory and press CTRL+F5 again. And this "HTTP Error 404.3 - Not Found" error is greeting me back.

So something in my IIS7/Vista-64 setup is wrong. What could I be missing?

Wilbur answered 6/10, 2009 at 21:58 Comment(3)
Found iweb.adefwebserver.com/Default.aspx?tabid=57&EntryID=34 which solved my problem. Leaving this open for others to add other possible options to fix this "problem".Wilbur
write that up as an answer and mark it accepted to make it clearerPavior
That doesn't work. Do we even use 3.0 anymore? Or is the link outdated?Disloyal
S
27

Click Start -> Run cmd and type:

cd "\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
ServiceModelReg.exe -i
Sentience answered 6/10, 2009 at 22:11 Comment(0)
L
25

If you faced this problem for the first time. with Windows 8 and IIS 8.0 make sure to activate Windows Communication Foundation HTTP windows feature.

  1. Go to Control Panel select "Programs and features"
  2. From the lift hand side menu select "Turn Windows features on or off".
  3. Expand ".Net Framework 3.5 (includes .NET 2.0 and 3.0)" item
  4. Finally select "Windows Communication Foundation HTTP Activation"
  5. Enjoy your WCF Servcie.
Lamm answered 15/1, 2014 at 6:32 Comment(2)
Yours is the real answer, thank you. Be sure to do the same for 4.0.Francklyn
This is the correct, 'non-hacky', way to get rid of 404.3 errorTinstone
J
10

The problem, however, is then to re-register ASP.Net to IIS, which is explained below.

And also if you're on a 64bit machine always use Framework64 paths: C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -iru

Below is the explanation from Microsoft:

http://download.microsoft.com/download/0/A/E/0AEB3BC1-506E-4954-8AB1-4FA2EE75985C/ReleaseNotes.docx

When attempting to run a service that receives messages over the HTTP transport, you may receive an error similar to the following:

Server Error in '/WCFApplication' Application

Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Description: An unhandled exception occurred during the execution of the current Web request. Review the stack trace for more information about the error and where it originated in the code. Exception Details: System.TypeLoadException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

This error can occur when IIS is installed after installing .NET Framework 4, or if the 3.0 version of the WCF Http Activation module is installed after installing IIS and .NET Framework 4.

To resolve this problem, you must use the ASP.NET IIS Registration Tool (Aspnet_regiis.exe,) to register the correct version of ASP.NET. This can be accomplished by using the –iru parameters when running aspnet_regiis.exe as follows:

aspnet_regiis.exe -iru

And credit, where it's due: Source

Jeffreyjeffreys answered 23/6, 2010 at 5:14 Comment(0)
P
6

I had to tick "HTTP Activation" in "Add Role Services" within Windows Server 2012.

Pharmacopsychosis answered 6/3, 2013 at 0:40 Comment(0)
S
3

try to install IIS by expanding your Internet information service and then check ASP.Net 3.5 or ASP.Net 4.5 and ISAPI.... in root of world wide......... please look image to more helpenter image description here

Selfeffacement answered 15/6, 2013 at 18:48 Comment(1)
Your answer is a bit late... :-)Wilbur
E
1

I tried running ServiceModelReg and aspnet_regiis.exe with various flags and added HTTP Activation feature but it still didn't work. What finally worked was adding the following handler manually to my web.config file.

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

My project was running .Net 3.5 and IIS was 7.5 and 7.0.

Emerald answered 12/3, 2015 at 15:38 Comment(0)
E
1

Up to date answer

This question, and many existing answers predate .NET Framework 4, but anybody finding this question today is probably using .NET 4, so here are updated instructions:

HTTP Activation exists in IIS for both .NET Framework 3.5 / 4 activation but it is configured separately per framework so make sure you select the one corresponding to the framework you're using.

For .NET 3.5:

HTTP Activation can be found under .NET Framework 3.5 (includes .NET 2.0 and 3.0)

For .NET 4:

HTTP Activation can be found under .NET Framework 4.x Advanced Services > WCF Services.

enter image description here

Embower answered 1/4, 2024 at 21:40 Comment(7)
The question is also from before the .NET 4 framework. Why are you answering it after 15 years, when a valid answer has already been accepted?Wilbur
Because I already did what the most comparable answer said and it was insufficient to get it working for .NET 4. Screenshots are far easier to consume for answers like this so I added it. I wanted to make sure anybody - such as myself - using newer frameworks found the up to date answer (and that's why I labelled it as such). This question comes ranked high for this issue. Answers to this question aren't just for you - they're for everybody having a similar issue and change overtime. I I don't understand why you're so obsessed with complaining about 'late answers' anyway?Embower
I am complaining because this question is 15 years old and technically obsolete. If people keep commenting on it, it just stays up high in the searches. The question was specifically for .NET 3.5, not .NET 4. .NET 4 wasn't even out in 2009 so your answer is incorrect.Wilbur
Many people are clearly finding your question (with nearly 70k views) and answers helpful even after 15 years (including myself). The essence of the problem is the same today and the title is still the exact same error message I got a month ago so of course it will come up high in Google rankings. Sure, old questions are a massive issue in StackOverflow - but nobody is reading this and thinking 'Oh no I'm not using Windows Vista - it can't possibly be useful.' I will continue adding to 'obsolete' questions where I see it can help future people.Embower
And I have to remind you that you provided a wrong answer as my question was for .NET 3.5, not 4. As for the error message, it's a very generic error and I've learned that there could be various reasons as for why it fails. That HTTP Activation" is not a proper answer as .NET 3.5 does not even have that feature! It would have been different if your answer worked with .NET 3.5...Wilbur
Hence the downvote. I get it. To avoid confusion I've edited my answer. I don't expect this to change how you feel, but frankly that's your problem to contend with.Embower
Actually, your edit changed my opinion into an upvote. :) Thing is, you should not try to upgrade a question to newer versions. As for the accepted answer, that one solved it for me, back in 2009. Nothing is going to change that.Wilbur

© 2022 - 2025 — McMap. All rights reserved.