Note explicative pour la réalisation des TPs avec le Serveur Web IIS 7

Transcription

Note explicative pour la réalisation des TPs avec le Serveur Web IIS 7
Note explicative pour la réalisation des TPs avec le Serveur Web IIS 7
Installation du service IIS
Fermer toutes les applications ouvertes (par précaution)
Ouvrir le panneau de configuration, Programmes, Programmes et fonctionnalités
Cliquer sur Activer ou désactiver des fonctionnalités Windows (panneau de gauche) : patienter pendant le chargement de la liste des fonctionnalités et sélectionner la rubrique Services Internet (IIS) :
Sélectionner également les fonctionnalités supplémentaires suivantes de la rubrique Fonctionnalités de développement d'applications :
‐ ASP.NET
‐ Extensibilité .NET (vient automatiquement avec ASP.NET)
‐ Extensions et filtres ISAPI (vient automatiquement avec ASP.NET)
Sélectionner également les fonctionnalités supplémentaires suivantes de la rubrique Sécurité :
‐ Filtrage des demandes (vient automatiquement avec ASP.NET)
Valider par OK.
1
Vérification du bon fonctionnement
A l'aide d'un navigateur visiter la page http://localhost/.
Post‐installation
Exécuter la commande suivante en tant qu'administrateur pour effectuer la liaison entre IIS, ASP.NET et le Microsoft .Net Framework 4 (POUR LES FICHIERS ASMX EN TOUS CAS)
\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe ‐i
Premiers pas dans le Gestionnaire de services internet IIS
2
Gestion des sites
Ajout d'un site
Clic droit sur Sites, Ajouter un site web
Nom du site : MonSiteWcf1
Chemin d'accès physique : C:\Users\user\Documents\Visual Studio 2013\Projects\WcfService1
Port : 81 (le 80 étant déjà occupé)
Configuration du pool d'application
3
Notre application WCF utilisant le Microsoft .Net Framework, nous devons configurer le pool d'applications pour ce site en conséquence dans le gestionnaire IIS.
Gestion d'un site particulier
Modification du port d'écoute
Pools d'applications
Permet la gestion des applications sur le serveur et leur contexte d'exécution : c'est ici que l'on défini les références aux frameworks utilisés par l'application et nécessaires à son bon fonctionnement.
Création d'un projet WCF simple
Nouveau projet / Application de service WCF utilisant le Microsoft .Net Framework 4.0
4
Compilation du projet par défaut sans rien modifier :
Profil
Clic sur Personnalisé, puis on donne un nom au profil : profilWcf1, par exemple
Connexion
On définit ensuite les informations sur le serveur de publication créé précédemment:
5
Méthode de publication : WebDeploy
Serveur : localhost
Nom du site : MonSiteWcf1
URL de destination : http://localhost:81/
Vérification des paramètres fournis :
Clic sur Suivant
Paramètres
6
Clic sur Suivant
Aperçu
Un clic sur Démarrer l'aperçu affiche la liste des fichiers qui seront disponibles (publiés) sur le serveur.
7
Consommation du service depuis Windows
Créer un projet Windows Forms, Web ASP.NET ou Console
Ajouter une référence vers le service web à consommer
Consommation du service depuis NetBeans
Créer un projet Appliation Java ou Web
Ajouter un élément de type Service client web : renseigner l'URL d'accès au service Web complété de ?
WSDL
Pour utiliser le service web depuis une classe : clic droit, Insert Code ..., Call web Service Operation ... et sélectionner la méthode à utiliser souhaitée.
// Technique ASMX
package jwsdata;
public class JWSData {
public static void main(String[] args) {
System.out.println(helloWorld());
}
private static String helloWorld() {
org.tempuri.CalcService service = new org.tempuri.CalcService();
org.tempuri.CalcServiceSoap port = service.getCalcServiceSoap12();
return port.helloWorld();
}
}
// Technique WCF
8
package jwsobject;
public class JWSObject {
public static void main(String[] args) {
System.out.println(getData(2));
}
private static String getData(java.lang.Integer value) {
org.tempuri.Service1 service = new org.tempuri.Service1();
org.tempuri.IService1 port = service.getBasicHttpBindingIService1();
return port.getData(value);
}
}
Echange de données complexes (objets issus de classes)
Côté serveur
Créer un projet basé sur des services ASMX ou WCF
Créer la classe pour l'objet à échanger entre le serveur et le client.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace ObjectService
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class DepartementService : System.Web.Services.WebService
{
[WebMethod]
9
public Departement GetDepartement(Departement dept) { return dept; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ObjectService
{
public class Departement
{
private string nom;
public string Nom {
get { return nom; } set { nom = value; }
}
private int numero;
public int Numero {
get { return numero; } set { numero = value; }
}
}
}
Côté client
Créer un projet Console et ajouter une référence vers le service web à consommer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DepartementForm
{
class Program
10
{
static void Main(string[] args)
{
ServiceReference1.DepartementServiceSoapClient sr1 = new
ServiceReference1.DepartementServiceSoapClient();
ServiceReference1.Departement dept;
dept = new ServiceReference1.Departement();
dept.Nom = "Nièvre";
dept.Numero = 58;
sr1.GetDepartement(dept);
Console.WriteLine("Département " + sr1.GetDepartement(dept).Nom + " : numéro " + sr1.GetDepartement(dept).Numero);
}
}
}
Messages d'erreur et solutions
Au cours du déploiement depuis Visual Studio, l'erreur suivante peut être rencontrée :
Échec de la tâche de déploiement Web. (Le pool d'applications que vous essayez d'utiliser a la propriété 'managedRuntimeVersion' définie à 'v2.0'. Cette application requiert 'v4.0'. Pour en savoir plus : http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_APPPOOL_VERSION_MISMATCH.)
Il suffit de configurer le pool d'application utilisé avec le bon framawork et de relancer la publication.
Au cours de l'affichage des pages sur le serveur IIS, les erreurs suivantes peuvent être rencontrées :
"Impossible d'accéder à la page que vous avez demandée, car les données de configuration connexes relatives à la page ne sont pas valides."
Cela signifie qu'un pré‐requis n'est pas installé au niveau du serveur : il s'agit ici du Rôle ASP.NET.
Erreur HTTP 403.14 ‐ Forbidden
Le serveur Web est configuré pour ne pas afficher le contenu de ce répertoire.
=> Il faut activer (si on le souhaite seulement) l'exploration de répertoire
Erreur HTTP 500.21 ‐ Internal Server Error
11
La liste de modules du gestionnaire "WebServiceHandlerFactory‐Integrated" contient un module incorrect "ManagedPipelineHandler"
Erreur du serveur dans l'application '/'.
Le service ne peut pas être activé car il ne prend pas en charge la compatibilité ASP.NET. La compatibilité ASP.NET est activée pour cette application. Désactivez le mode de compatibilité ASP.NET dans le fichier web.config ou ajoutez l'attribut AspNetCompatibilityRequirements au type de service en définissant RequirementsMode à 'Allowed' ou à 'Required'.
Modifier le fichier Web.config en remplaçant :
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
Par :
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" />
Lancement de Tomcat 8.0.15 depuis NetBeans 8.0.2
'127.0.0.1' n'est pas reconnu en tant que commande interne ou externe, un programme ex‚cutable ou un fichier de commandes.
Modifier le fichier catalina.bat et retirer les guillements lors de la définition des deux affectations JAVA_OPTS.
12

Documents pareils