2

J'apprécierais des opinions ou des suggestions.Question sur le site de Copying vs Publishing

Depuis plusieurs années, j'ai un site Web html et javascript hébergé sur un serveur Apache partagé hébergé par Wild West. Récemment, j'ai décidé de le migrer vers .NET 3.5 et de le mettre sur un serveur Windows IIS7 partagé également hébergé par Wild West. J'ai réécrit toutes les pages à l'aide de Visual Studio 2008, ajouté la gestion des rôles, une arborescence de menus contrôlée par sitemap avec la fonction de sécurité basée sur les rôles activée et les répertoires sécurisés. Il y a peut-être une demi-douzaine de pages avec quelques répertoires sécurisés qui ont, à ce stade, seulement un ou deux fichiers dans chacun. Site simple. J'ai utilisé l'outil de configuration ASP.NET de VS2008 pour créer des utilisateurs et des rôles qui correspondent à tous les noms de rôles dans le sitemap et confirmé que les utilisateurs, etc., se trouvent dans les tables aspnet_ de la base de données App_Data/ASPNETDB.MDF. Le site rend très bien sur la machine locale. La page Login.aspx permet à l'utilisateur de se connecter, l'arborescence de menu s'ajuste en conséquence, le contrôle d'état de connexion s'ajuste en conséquence, et l'utilisateur est redirigé de manière appropriée ... tout fonctionne comme prévu.

J'ai sorti le compte d'hébergement Windows partagé avec Wild West (anciennement GoDaddy), exporté les tables et les données ASPNETDB vers un fichier .sql et les ai recréés sur le serveur MS SQL, édité la chaîne de connexion dans web.config la chaîne de connexion fournie par Wild West, puis utilisé FileZilla pour ftp/copier les fichiers et dossiers sur le serveur Windows. Les pages .aspx rendront sans problème mais lorsque j'essaie d'utiliser l'un des noms d'utilisateur et mots de passe pour se connecter, une exception SQL est levée. Voici le message d'exception assez vague:

Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que, dans les paramètres par défaut, SQL Server n'autorise pas les connexions distantes. (fournisseur: SQL Network Interfaces, erreur: 26 - Erreur de localisation serveur/instance spécifiée)

Le support technique de Wild West m'a permis de supprimer et de recréer la base de données en vérifiant que les connexions à distance sont autorisées et qu'elles ont vérifié que les informations sur la chaîne de connexion sont correctes mais exception est toujours levée lors de la tentative de connexion. Maintenant, voici la partie étrange, je peux coder en dur les informations de connexion dans le code derrière une page et il se connectera avec succès à la base de données pour extraire des informations. Ainsi, la base de données est accessible par le serveur Web. Donc, j'ai commencé à me demander ... est le problème parce que j'ai simplement copié les pages, les fichiers code-behind et les dossiers sur le serveur au lieu de les construire et ensuite de copier la version compilée sur le serveur? Le HTML est très différent de .NET et les serveurs Apache sont très différents d'IIS7. J'avais lu quelque part que les sites non compilés copiés sur IIS7 seraient compilés par le serveur à la première demande mais peut-être que ce n'est pas vrai. La structure du dossier sur le serveur n'inclut pas un dossier BIN, ce qui me porte à croire que le serveur n'a pas, en fait, construit le site. Dois-je supprimer les fichiers et dossiers de là, construire le site sur la machine locale, puis copier la version construite sur le serveur? Cela pourrait-il être ce qui cause le message d'erreur?

Merci pour toute information que vous pouvez donner. Passez de bonnes fêtes de fin d'année.

John

+0

Modifier votre question et postez votre chaîne de connexion (avec l'utilisateur et mot de passe supprimé) –

Répondre

2

je doute vraiment le problème que vous voyez n'a rien à voir avec la façon dont vous avez déployé votre site Web. IIS compilera automatiquement le site Web à la première demande si vous ne l'avez pas déjà publié. Vous pouvez toujours essayer de le publier et de copier toutes les bibliothèques sur le serveur, mais je ne pense pas que cela puisse résoudre le problème.

Pour moi, cela ressemble à un problème de serveur de base de données n'étant pas accessible depuis votre serveur Web.

Pouvez-vous poster la chaîne de connexion que vous utilisez, sans le nom d'utilisateur/mot de passe afin que nous puissions regarder?

1

Le problème a été résolu. C'était une question en plusieurs parties. La section de chaîne de connexion avait besoin d'un élément pour effacer tout élément hérité de la société d'hébergement. Les rôles et les sections d'appartenance ne faisaient pas référence à la chaîne de connexion pour obtenir leurs données. Et puis le contrôle de connexion ne trouvait pas le nom d'utilisateur qui aurait dû être là, donc nous avons ajouté un fichier Global.asax qui ajoute l'utilisateur s'il n'est pas trouvé. L'ensemble du problème et le processus a été posté à ce lien: asp.net forum post

Questions connexes