l'api web montre 403.14 erreur lors de l'localhost:numéro de port dans l'adresse du navigateur dans iis express
Ce doit être quelque chose de vraiment stupide mais je ne vois pas quoi faire d'autre.
À l'aide de Visual Studio 2013 - mise à Jour 1, j'ai créé un vide web api 2 projet dans une solution existante, a ajouté l'origine de la croix de support (scro) et créé une base de web api contrôleur.
La WebApiConfig classe semble aller pour le mieux:
public static void Register(HttpConfiguration config)
{
//Web API configuration and services
var cors = new EnableCorsAttribute("*","*","*");
config.EnableCors(cors);
//Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
Et aussi le Global.asax
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
Je puis exécutez l'application, IIS express démarre normalement et le navigateur commence par l'application de l'url mais rien ne semble fonctionner.
Si l'URL est "localhost:numéro de port" - je obtenir Erreur HTTP 403.14 - Interdit Le serveur Web est configuré pour ne pas afficher le contenu de ce répertoire.
Si j'essaie de "localhost:numéro de port/api" - je obtenir Erreur HTTP 404.0 - Pas Trouvé La ressource que vous recherchez a été supprimée, que son nom ait changé ou est temporairement indisponible.
J'ai regardé plusieurs blogs, des tutoriels, des exemples et je n'ai pas vu nulle part que quelque chose de spécial qui doit être fait. Quelqu'un pourrait s'il vous plaît faire un peu de lumière dans ce que je pourrais être absent?
OriginalL'auteur Sergio Romero | 2014-04-16
Vous devez vous connecter pour publier un commentaire.
Api Web ne possède pas de défaut visible de la page (aspx, html, etc) qui peuvent être affichées en accédant à la racine (
localhost:port
dans ce cas). Donc, c'est le comportement normal. Pour accéder à votre Api via le contrôleur, vous devez accéder à l'aide de l'itinéraire modèle spécifié dans votreMapHttpRoute()
méthode.Afin d'accéder à la
GET
méthode dans votre Api, vous devriez ouvrir un navigateur et de la placelocalhost:port/api/{controllername}
dans l'url.{controllername}
serait le nom de votre contrôleur de classe sans Contrôleur ajouté à la fin.ex: Si votre contrôleur ressemblait à ceci:
Alors votre url pour la première
Get()
devrait ressembler à ceci:Et l'url pour le deuxième
Get(int id)
devrait ressembler à ceci:Pouvez-vous poster une partie de votre Contrôleur de classe afin que nous puissions voir ce que vos méthodes?
En fait, j'ai essayer d'utiliser des noms personnalisés pour les méthodes et réalise alors que cette api n'admette que les verbes http standard, à moins que la définition de la route est modifié qui n'est pas une exigence pour moi tout à l'heure. Merci d'avoir pris le temps de répondre à votre réponse m'a fait rendre compte.
Bon. Heureux de l'entendre.
OriginalL'auteur jensendp
Si le vôtre route de la config est OK pour vous, vous pouvez essayer d'ajouter ceci dans le Web.config:
OriginalL'auteur qba8