J'ai une application MVC2
qui inclut également une partie Non MVC (pages Asp.Net normales de 3,5 pages).Accéder à Webservice depuis Asp.net MVC
J'appelle webservice (pas WCF) de pages non MVC pour remplir les compléments d'autocomplétion.
Les pièces MVC et les pièces non-MVC fonctionnent correctement dans ma machine de développement.
Lorsque j'héberge mon application dans IIS, je ne peux pas accéder aux méthodes web de mon service web. J'ai vérifié avec firebug qu'il retourne
The controller for path '/payroll/WS/MVCArch.asmx/JqUiGetEmp' was not found or does not implement IController. '
Ici mon nom de répertoire virtuel est Paie. et mes pages Non MVC sont situées sous un dossier appelé "RepDocs" qui est sous la racine de l'application. Mon dossier Webservice "WS" est également sous la racine de l'application. La requête a été envoyée à partir d'une page non mvc sous le dossier "RepDocs".
Comment se fait le même code fonctionne dans VSHOST
et pas dans IIS (XP sp3)
? Ai-je raté quelque chose?
Aidez-nous s'il vous plaît.
EDIT
J'ai modifié mon global.asax pour exclure les routes comme suivre
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.IgnoreRoute("WS/{resource}.asmx/{*pathInfo}");
//routes.IgnoreRoute("{*allasmx}", new { allasmx = @".*\.asmx(/.*)?" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Maintenant, je reçois cette erreur
The HTTP verb POST used to access path '/Payroll/ws/MVCArch.asmx/JqUiGetOffice' is not allowed.
j'ajouté ce qui suit sur le Web. config
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
Toujours pas de chance.
Votre chemin est probablement mauvais pour le déploiement. Voir http://blogs.msdn.com/b/rickandy/archive/2011/04/22/test-you-asp-net-mvc-or-webforms-application-on-iis-7-in-30-seconds .aspx - – RickAndMSFT
J'ai vérifié avec le chemin et wsdl renvoie correctement ce qui signifie que mon service est opérationnel. Les pages sont affichées correctement. La seule chose qui ne fonctionne pas est une requête ajax à mon service. en quelque sorte la requête finit avec le contrôleur qui ne devrait pas être comme la demande provient de la page non mvc. – Deb