2009-02-10 4 views
1

J'ai un étrange scénario:problème d'accès SSL Sharepoint Web.Config

J'ai un webpart qui remet en une dll dans le GAC, qui tente de lire une section de fichier web.config. Cela fonctionne normalement, mais sous SSL, il échoue, indiquant qu'il n'a pas accès au chemin (du fichier de configuration). Cependant, il est sous le compte mosssvc, qui a un contrôle total sur le fichier webconfig.

Le fichier web.config 80 et le fichier 443 web.config ont les mêmes entrées que dll et mosssvc a un contrôle total sur les deux configurations.

J'ai essayé d'élever le niveau de confiance sur 443 à plein, ce qui n'a pas fonctionné.

Des idées, ou tout ce que vous pouvez penser que je peux essayer?

EDIT: J'aurais dû être plus clair: le site SSL a déjà été créé et fonctionne bien jusqu'à ce que la méthode de l'assembly GAC'd essaie d'examiner la configuration web.

Le message d'erreur complet est:

Event Type:  Warning 
Event Source: ASP.NET 2.0.50727.0 
Event Category:    Web Event 
Event ID:    1310 
Date:      2/9/2009 
Time:      1:44:49 PM 
User:      N/A 
Computer:   XXXXX 
Description: 
Event code: 3008 
Event message: A configuration error has occurred. 
Event time: 2/9/2009 1:44:49 PM 
Event time (UTC): 2/9/2009 9:44:49 PM 
Event ID: 2d7180cdfbb34acfa6c61f95df12ddde 
Event sequence: 26 
Event occurrence: 1 
Event detail code: 0 

Application information: 
    Application domain: YYYYYYYYYYYYYYYYYYYYYYY 
    Trust level: Full 
    Application Virtual Path:/
    Application Path: C:\Inetpub\wwwroot\wss\VirtualDirectories\8443\ 
    Machine name: XXXXXXXX 

Process information: 
    Process ID: 5168 
    Process name: w3wp.exe 
    Account name: XXXXXXXXX\mosssvc 

Exception information: 
    Exception type: ConfigurationErrorsException 
    Exception message: An error occurred loading a configuration file: Access to the path 'C:\Inetpub\wwwroot\wss\VirtualDirectories\8443\web.config' is denied. (C:\Inetpub\wwwroot\wss\VirtualDirectories\8443\web.config) 

Request information: 
    Request URL: https://XXXXXXX:443/training/Pages/smartregister.aspx?c=383 
    Request path: /training/Pages/smartregister.aspx 
    User host address: 64.34.27.186 
    User: 
    Is authenticated: False 
    Authentication Type: 
    Thread account name: XXXXXXX\mosssvc 

Thread information: 
    Thread ID: 10 
    Thread account name: XXXXXXX\mosssvc 
    Is impersonating: True 
    Stack trace: at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) 
    at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors) 
    at System.Configuration.Configuration..ctor(String locationSubPath, Type typeConfigHost, Object[] hostInitConfigurationParams) 
    at System.Configuration.Internal.InternalConfigConfigurationFactory.System.Configuration.Internal.IInternalConfigConfigurationFactory.Create(Type typeConfigHost, Object[] hostInitConfigurationParams) 
    at System.Web.Configuration.WebConfigurationHost.OpenConfiguration(WebLevel webLevel, ConfigurationFileMap fileMap, VirtualPath path, String site, String locationSubPath, String server, String userName, String password, IntPtr tokenHandle) 
    at System.Web.Configuration.WebConfigurationManager.OpenWebConfigurationImpl(WebLevel webLevel, ConfigurationFileMap fileMap, String path, String site, String locationSubPath, String server, String userName, String password, IntPtr userToken) 
    at System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(String path) 
    at XXXXXXXXX.RegistrationHelper.RegisterStudents(Boolean sendEmail, String Time, String Title, String bFirstName, String bLastName, String bAddress, String bPostalCode, String bCity, String bTelephone, String bCompany, String bEmail, List`1 Registrants, Int32 courseDateID, String pType, String CCNumber_, String NameOnCard, String cExpiry, Double Discount, String DiscountCode, Double CostPerRegistrant, String PurchaseOrder) 
    at ASP.SmartEventRegistration.lnkSubmit_Click(Object sender, EventArgs e) in c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\SmartEventRegistration\SmartEventRegistration.ascx:line 401 
    at System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e) 
    at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) 
    at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 
    at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) 
    at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
    at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
    at System.Web.UI.Page.ProcessRequest() 
    at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) 
    at System.Web.UI.Page.ProcessRequest(HttpContext context) 
    at Microsoft.SharePoint.Publishing.TemplateRedirectionPage.ProcessRequest(HttpContext context) 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

Répondre

1

essayer cette forme Faranz Kan SharePoint blog comment activer SSL dans MOSS:

  1. Aller à l'admin central -> Créer ou étendre une nouvelle application Web -> Créez une nouvelle application Web.
  2. Remplissez les noms de l'application Web, de la base de données et du pool d'applications, comme d'habitude. Sélectionnez Oui pour pour activer SSL sur l'application Web. Si vous utilisez des en-têtes d'hôte pour cette application Web , entrez-les également. (Important: Assurez-vous de régler le port sur 443, pas sur 80).
  3. Une fois l'application Web créée, réinitialisez IIS et ouvrez IIS mmc. Faites défiler jusqu'au site Web IIS qui MOSS vient d'être créé pour vous et choisir le bon certificat SSL de les certificats disponibles (demandez à générer un certificat SSL ou externe interne pour vous en fonction si ceci est un test les gens du réseau ou prod serveur). Important: Accédez à l'onglet Répertoire Accueil et cliquez sur Avancé. Faites que vous définissez l'en-tête d'hôte et l'adresse IP correcte pour le port 80. Pour les entrées SSL, sélectionnez le port 443 et l'adresse IP. (Si vous avez plusieurs adresses IP sur le serveur, je en choisit habituellement une pour ces entrées ). Cliquez sur le bouton Modifier pour les entrées SSL et cochez la case 'Exiger SSL'. Cochez également la case 'Exiger 128 bits ' pour renforcer la sécurité.
  4. Maintenant allez-y et créez votre première collection de sites pour cette application web. MOSS créera automatiquement un nouveau site pour vous et vous présentera avec un lien "https: // .." sur complétion. Vous devriez maintenant avoir une application web prête pour le SSL .
  5. Par défaut, si vous voulez plusieurs applications Web en utilisant SSL sur le même serveur
    • cela ne fonctionne pas dans IIS 6. Si vous souhaitez plusieurs applications Web MOSS 2007 pour être SSL activé, il y a deux façons de à ce sujet. L'one-way est d'obtenir autant d'IP que vous voulez les applications Web de SSL pour ce serveur Web et assigner un IP par arrangements d'en-tête d'hôte pour le port 80 et 443 sous des propriétés de site Web d'IIS -> Répertoire principal -> Avancé. L'autre option consiste à modifier la métabase IIS pour autoriser plusieurs applications Web SSL sur la même adresse IP . Soyez prudent avec la deuxième option et assurez-vous de savoir ce que vous faites .
Questions connexes