2009-07-31 5 views
2

J'ai terminé mon tout premier projet C# dans VS 2008 et cela fonctionne bien maintenant. Mais maintenant j'ai besoin de publier ce projet sur mon nouveau site web. Ce projet est une application Web qui interagit avec ma base de données SQL Server 2008 Adventureworks sur ce même ordinateur (XP Professional OS). Je cours IIS 6.0 Manager, mais je suis un débutant à la fois IIS 6.0 et VS 2008.Ajout de l'application Web C# à un site Web avec IIS6

J'ai commencé par un clic droit sur l'application dans VS et en sélectionnant "Publier", mais je viens de sélectionner le système de fichiers, cause En choisissant Local IIS, je dois entrer le nom d'utilisateur et le mot de passe.

Le problème est que je ne peux pas ouvrir ce site Web à partir d'IIS sans que cela ne m'indique le nom d'utilisateur et le mot de passe. J'ai modifié le fichier machine.config plusieurs fois dans la section processModel, en définissant le nom d'utilisateur = "D610-M \ ASPNET", password = "AutoGenerate". Mais cela me fait entrer le mot de passe intégré lorsque j'essaie de l'afficher. Et je ne sais pas ce qu'est le mot de passe ASPNET intégré. Lorsque j'annule ce mot de passe, il renvoie:

HTTP 401.1 "Vous n'êtes pas autorisé à afficher cette page."

Et j'ai réinitialisé le mot de passe ASPNET plusieurs fois. J'ai d'abord essayé de le définir sur un mot de passe que je connaissais, puis j'ai lancé la commande aspnet_regiis pour le réinitialiser. J'ai également essayé de substituer d'autres noms d'utilisateur et mots de passe, mais aucun d'eux n'a fonctionné. J'ai même essayé d'entrer "SYSTEM" pour le nom d'utilisateur et le mot de passe AutoGenerate, mais même cela m'incite à entrer le mot de passe. J'ai ajouté les autorisations de lecture/écriture/liste d'utilisateur ASPNET à tous les dossiers pertinents. Et j'ai essayé de créer un nouveau site Web pointant vers http://localhost/[AppName], mais cela me force à entrer le mot de passe. Donc, ne pas contourner ce mot de passe.

J'ai modifié les propriétés du site Web par défaut dans IIS: répertoire de base pointant vers mon application dans le dossier VS 2008 et Application Protection = Low. Sur l'onglet Sécurité du répertoire, j'ai défini le nom d'utilisateur sur D610-M \ IUSR_D610-M et j'ai coché "Activer l'accès anonyme". J'ai décoché le permis IIS pour contrôler le mot de passe.

Et j'ai lu beaucoup d'URL de MS et d'autres sites Web pour voir si je pourrais répondre à ces problèmes moi-même, mais aucune de leurs aides n'a fonctionné non plus. Cela devrait être simple. J'essaye juste d'ajouter mon application Web à mon site Web. Je sais que mon site fonctionne parce que j'ai installé un site Web par défaut avec HTML de base et cela fonctionne.

Que puis-je essayer de plus pour ajouter cette application Web à mon site Web?

+1

Première question ... Votre site Web se trouve-t-il sur une machine que vous possédez ou est-elle hébergée par une tierce partie? – David

+0

N'est-ce pas la même que la question que vous avez posée plus tôt? http://stackoverflow.com/questions/1197486/deploy-c-project-to-a-website-with-iis-6-0/1197659#1197659 –

+0

@Abhijeet: Bonne prise. –

Répondre

0

Habituellement, je recommande la construction initiale à un emplacement dans C: \ (par exemple C: \ MyFirstApplication). Vous devez également vous assurer que le "Service réseau" dispose d'autorisations sur ce dossier. Placer l'application dans le dossier projets (ou autre) de votre liste de documents personnels demande des autorisations et des problèmes d'accès. Essayez cela et voyez si ça marche!

+0

Tejs, J'ai essayé, mais que dois-je entrer pour le nom d'utilisateur et le mot de passe après avoir cliqué sur Parcourir? – salvationishere

0

Vous devez définir des autorisations de dossier au niveau racine sur votre site Web. Accédez au dossier qui contient votre site Web, cliquez avec le bouton droit, autorisations, onglet sécurité. Assurez-vous que vous avez asp.net, utilisateur anonyme, compte Invité Internet (ordinateur \ iuser_ {quelque chose}) et le service réseau dans les rôles autorisés. En aparté, je suggère que vous précompiliez votre site avant de le poster sur votre serveur web. C'est une précaution de sécurité et un booster de performance. Entrer dans cette habitude sera une bonne chose pour vous à long terme. Cela empêche les utilisateurs de modifier le code sur le serveur.Il y a un bon utilitaire ici pour vous faciliter la tâche: http://www.west-wind.com/tools/aspnetcompiler.asp

+0

Andrew, j'ai téléchargé le compilateur ASP.NET 2.0. Quelle est la différence entre pré-compiler et construire? J'ai ajouté tous les comptes d'utilisateur de votre premier paragraphe et j'ai vérifié qu'ils avaient les autorisations Lire, Ecrire, Liste. Cependant, il m'incite toujours à entrer le nom d'utilisateur/mot de passe. Qu'est-ce que j'entre ici? – salvationishere

+0

Lorsque vous dites lecture, écriture et liste, cela signifie que vous définissez les autorisations à partir d'IIS. Vous devez aller dans Windows Explorer et assurez-vous que les comptes appropriés sont répertoriés (par recommandation ci-dessus) à ce niveau. Construire construit simplement tout. Vous pouvez toujours changer de code derrière et ils vont recompiler à la volée. Lorsque vous publiez ... IIS doit générer lorsque la page est exécutée. La précompilation prend tout le code derrière et le place dans un assemblage (donc pas d'édition côté serveur) et ils sont compilés et prêts à partir quand ils sont demandés (donc performance inhancement). –

0

Je crois que c'est à peu près la même chose que la question posée par le plus tôt here

+0

Oui, c'est le cas. Mais j'ai regroupé les commentaires les plus importants dans cette question ici. – salvationishere

+0

Avez-vous déjà modifié les comptes IWAM _xxx ou IUSR_xxx ou leur mot de passe manuellement, si cela a pu provoquer des problèmes. Consultez ce lien: http://www.issociate.de/board/post/175508/Recreate_IWAM_and_IUSR_accounts,_how?.html pour recréer les comptes d'utilisateur IIS et réexécutez aspnet_regiis -i pour vous assurer que ASPNET est enregistré correctement. Vérifiez également les propriétés du site Web par défaut et assurez-vous que tous les autres modes d'authentification sauf Anonyme sont désactivés. Faites-nous savoir si cela change quelque chose. –

+0

J'ai vérifié ce lien. Non, je n'ai jamais changé l'un de ces mots de passe. Je vais vérifier les propriétés. À l'heure actuelle, j'essaie de créer un nouveau site Web et de copier tous les fichiers requis à partir de mon application Web. Je vais vous laisser savoir comment ça se passe. Je ne vais probablement pas finir ça avant demain. – salvationishere

1

Je ne suis pas sûr que ce soit, mais .... J'ai vu cette erreur moi-même et il est généralement provoqué par ne pas avoir la version ASP.NET définie sur 2.0 dans les propriétés de votre site Web sous l'onglet ASP.NET. Ce paramètre est souvent défini par défaut sur ASP.NET 1.1 qui provoquerait cette erreur. Notez que même si vous utilisez Visual Studio 2008, la version ASP.NET doit toujours être 2.0 dans IIS. Je voudrais vérifier ce paramètre.

+0

Bryan, J'ai vérifié l'onglet Propriétés/Construction et il est défini sur ASP.NET 3.5. Je ne vois pas un onglet ASP.NET cependant. C'est ce que tu veux dire? – salvationishere

+0

Non, vous cherchez dans Visual Studio. Je parle de vos propriétés sur votre site Web dans IIS. Lorsque vous allez dans IIS et faites un clic droit sur votre site Web, il devrait y avoir un élément de menu de propriétés. Sélectionnez-le et une boîte de dialogue s'affichera pour les propriétés de votre site Web. Il devrait y avoir un onglet "ASP.NET" qui indique quelle version d'ASP.NET utiliser pour ce site Web. Il devrait y avoir seulement 2 choix ... 1.1 et 2.0. Mon intuition est que cela est fixé à 1,1 dans votre cas. Passez à 2.0. Pour une raison folle, ASP.NET 3.x est traité comme ASP.NET 2.0 sous IIS. –

1

Une limitation importante à retenir est que vous ne disposez que d'un site Web sur IIS6 sous XP. Si vous avez édité votre machine.config, vous avez introduit trop de nouvelles variables dans l'équation pour résoudre correctement le problème (pas que l'édition de machine.config en elle-même soit nuisible, mais c'est une indication qu'il y a un peu d'approche shotgun au problème).

Vous devez commencer par nettoyer votre ardoise et vous assurer que vous avez un système fonctionnant autrement. Parcourir une page HTML ne prouve pas beaucoup que l'exécution de HTML et l'exécution d'ASP.NET sont comme des pommes et des bicyclettes. Le meilleur que je connaisse pour ce faire est de désinstaller et réinstaller IIS et quel que soit le framework .NET que vous utilisez. Si vous êtes sur 3.5, vous devriez le faire pour les deux et trois virgule cinq. Si vous le pouvez, vous devez mettre machine.config et toutes les versions de web.config (à l'exception de celle de votre application Web elle-même) à leurs valeurs par défaut. Il n'y a rien là que vous devriez avoir besoin d'éditer une application ASP.NET ordinaire. Une fois que vous pensez avoir un tabla rasa et que vous pouvez parcourir une page html, changez son extension en .aspx et voyez si vous pouvez toujours la parcourir.

Ma dernière suggestion d'aujourd'hui est:

Comme une affiche au-dessus dudit ensemble de vos ACLs sur le dossier dans lequel votre site est (généralement c: \ inetpub \ wwwroot) de sorte que le groupe « Tout le monde » a « Full Access ". Ne le laissez pas de cette façon, même sur votre propre machine, mais il prend les autorisations de fichiers hors de l'équation. Si vous avez encore des problèmes faites le moi savoir, mais fondamentalement vous devez commencer à partir d'un état "connu" si vous espérez résoudre ce problème.

+0

IIS 6 est-il disponible sous XP? Ma compréhension était que c'est seulement disponible sur Win Server 2003 –

+0

Oui, le gestionnaire IIS6 est disponible sur XP. Zen, j'ai désinstallé IIS. Mais j'ai besoin d'emprunter un CD W XP avant de pouvoir le réinstaller. Je vous le ferai savoir, j'espère juste que cela le répare! – salvationishere

Questions connexes