c# web api can't call from web
<p>I have a <code>web api</code> solution with some <strong>models</strong> and <strong>controllers</strong>.</p>

<p>This is an example of my <strong>model</strong>:</p>

<pre><code>public class Category
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
}
</code></pre>

<p>And this is his <strong>controller</strong>:</p>

<pre><code>public class CategoriesController : ApiController
{
    private FrigoWebServiceContext db = new FrigoWebServiceContext();

    // GET: api/Categories
    [HttpGet]
    public string GetCategories()
    {
        return JsonConvert.SerializeObject(db.Categories.ToList());
    }

    // GET: api/Categories/5
    [ResponseType(typeof(string))]
    public string GetCategory(int id)
    {
        Category category = db.Categories.Find(id);
        if (category == null)
        {
            return null;
        }

        string jsonCategory = JsonConvert.SerializeObject(category);
        return jsonCategory;
    }

    protected override void Dispose(bool disposing)
    {
        if (disposing)
        {
            db.Dispose();
        }
        base.Dispose(disposing);
    }

    private bool CategoryExists(int id)
    {
        return db.Categories.Count(e =&gt; e.Id == id) &gt; 0;
    }
}
</code></pre>

<p>Now, this is the <strong>config</strong>:</p>

<pre><code>        config.Routes.MapHttpRoute(
            name: "GetId",
            routeTemplate: "api/{controller}/{id}"
            //defaults: new { id = RouteParameter.Optional }
        );
        config.Routes.MapHttpRoute(
            name: "GetAll",
            routeTemplate: "api/{controller}"
            //defaults: new { id = RouteParameter.Optional }
        );
</code></pre>

<p>but calling the following sites I'm not getting anything</p>

<p>NOTE: I published with IIS the api with "<code>myAppName</code>" path name</p>

<ul>
<li><a href="http://localhost/myAppName/Api/CategoriesController" rel="nofollow">http://localhost/myAppName/Api/CategoriesController</a></li>
<li><a href="http://localhost/myAppName/Api/CategoriesController/0" rel="nofollow">http://localhost/myAppName/Api/CategoriesController/0</a></li>
<li><a href="http://localhost/myAppName/Api/Category" rel="nofollow">http://localhost/myAppName/Api/Category</a></li>
<li><a href="http://localhost/myAppName/Api/Category/0" rel="nofollow">http://localhost/myAppName/Api/Category/0</a></li>
<li><a href="http://localhost/myAppName/Api/CategoriesController/GetCategories" rel="nofollow">http://localhost/myAppName/Api/CategoriesController/GetCategories</a></li>
<li><a href="http://localhost/myAppName/Api/Category/GetCategories" rel="nofollow">http://localhost/myAppName/Api/Category/GetCategories</a></li>
<li><a href="http://localhost/myAppName/Api/Categories" rel="nofollow">http://localhost/myAppName/Api/Categories</a></li>
</ul>

<p>But noone of those is working</p>

<p>this is the <strong>error</strong>:</p>

<blockquote>
  <p>Error HTTP 404.0 - Not Found Desired resource has been removed,
  renamed or it's temporally unavaible</p>
</blockquote>

<p>I've seen some questions from the internet and I tried to use them but I can't figure out why this is not working.</p>

<p>Any help will be appreciated, it's my first time with WebApi</p>

<p>this is my <strong>Web.Config</strong></p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;configuration&gt;
  &lt;configSections&gt;
    &lt;section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /&gt;
  &lt;/configSections&gt;
  &lt;connectionStrings&gt;
    &lt;add name="FrigoWebServiceContext" connectionString= [***] /&gt;
  &lt;/connectionStrings&gt;
  &lt;appSettings&gt;&lt;/appSettings&gt;
  &lt;system.web&gt;
    &lt;compilation debug="true" targetFramework="4.5" /&gt;
    &lt;httpRuntime targetFramework="4.5" /&gt;
    &lt;httpModules&gt;
      &lt;add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /&gt;
    &lt;/httpModules&gt;
  &lt;/system.web&gt;
  &lt;system.webServer&gt;
    &lt;handlers&gt;
      &lt;remove name="ExtensionlessUrlHandler-Integrated-4.0" /&gt;
      &lt;remove name="OPTIONSVerbHandler" /&gt;
      &lt;remove name="TRACEVerbHandler" /&gt;
      &lt;add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /&gt;
    &lt;/handlers&gt;
    &lt;validation validateIntegratedModeConfiguration="false" /&gt;
    &lt;modules&gt;
      &lt;remove name="ApplicationInsightsWebTracking" /&gt;
      &lt;add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" /&gt;
    &lt;/modules&gt;
  &lt;/system.webServer&gt;
  &lt;runtime&gt;
    &lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt;
      &lt;dependentAssembly&gt;
        &lt;assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /&gt;
        &lt;bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /&gt;
      &lt;/dependentAssembly&gt;
      &lt;dependentAssembly&gt;
        &lt;assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /&gt;
        &lt;bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" /&gt;
      &lt;/dependentAssembly&gt;
      &lt;dependentAssembly&gt;
        &lt;assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /&gt;
        &lt;bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /&gt;
      &lt;/dependentAssembly&gt;
      &lt;dependentAssembly&gt;
        &lt;assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /&gt;
        &lt;bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /&gt;
      &lt;/dependentAssembly&gt;
    &lt;/assemblyBinding&gt;
  &lt;/runtime&gt;
  &lt;system.codedom&gt;
    &lt;compilers&gt;
      &lt;compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /&gt;
      &lt;compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&amp;quot;Web\&amp;quot; /optionInfer+" /&gt;
    &lt;/compilers&gt;
  &lt;/system.codedom&gt;
  &lt;entityFramework&gt;
    &lt;defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /&gt;
    &lt;providers&gt;
      &lt;provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /&gt;
    &lt;/providers&gt;
  &lt;/entityFramework&gt;
&lt;/configuration&gt;
</code></pre>