2009-02-10 3 views
1

У меня странный сценарий:Sharepoint SSL Web.Config проблема доступа

У меня есть веб-части, которая вызывает в DLL в GAC, который пытается прочитать раздел из файла web.config. Это нормально работает нормально, но под SSL он терпит неудачу, заявив, что у него нет доступа к пути (файла конфигурации). Однако он находится под учетной записью mosssvc, которая имеет полный контроль над файлом webconfig.

Оба файла 80 web.config и файл 443 web.config имеют те же записи, что и dll, и mosssvc имеет полный контроль над обеими конфигурациями.

Я попытался повысить уровень доверия на 443 до полного, что не сработало.

Любые идеи или все, что вы можете придумать, что я могу попробовать?

EDIT: я должен был быть более понятным: сайт SSL уже создан и работает нормально, пока один из методов в сборке GAC'd не попытается проверить веб-конфигурацию.

Сообщения полной ошибки:

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) 

ответ

1

попробовать это, форма Faranz Kan SharePoint blog о том, как включить SSL в MOSS:

  1. Перейти к центральному администратору -> Создать или расширить новый веб-приложение -> Создайте новое веб-приложение.
  2. Заполните имена приложений в сети, DB и App, как обычно. Выберите «Да» для « ». Включите SSL в веб-приложении. Если вы используете заголовки хостов для этого веб-приложения, введите их тоже. (Важно: Обязательно установите порт - 443, а не 80).
  3. После создания веб-приложения сбросьте IIS, а затем откройте IIS mmc. Перейдите на веб-сайт IIS , что MOSS только что создали для вас и выбрать правильный сертификат SSL из имеющихся сертификатов (Попросите ваши сети людей, чтобы сформировать внутренний или внешний SSL сертификат для вас в зависимости ли это тест или prod сервер). Важно: перейдите на вкладку «Главная» и нажмите «Дополнительно». Сделайте уверенным, что вы установили заголовок хоста и правый IP для порта 80. Для записей SSL выберите порт 443 и IP. (Если у вас есть , у вас есть несколько IP-адресов на сервере, I обычно выбирают здесь для этих записей). Нажмите кнопку редактирования для записей SSL и установите флажок «Требовать SSL». Также установите флажок «Требовать 128 бит шифрования», чтобы сделать это более безопасным.
  4. Теперь идите и создайте свой первый сайт для этого веб-приложения. MOSS автоматически создаст новый сайт для вас и представляет вам с ссылкой «https: // ..» по завершении . Теперь у вас должно быть готовое веб-приложение SSL .
  5. По умолчанию, если вы хотите использовать несколько веб-приложений с использованием SSL на одном сервере
    • это не работает в IIS 6. Если вы хотите использовать несколько веб-приложений MOSS 2007, чтобы быть включен SSL, есть два способа об этом. Один из способов - получить как много IP-адресов, так как вы хотите, чтобы веб-приложения SSL для использовали этот веб-сервер и назначили один IP-адрес для параметров заголовка хоста для порта 80 и 443 под IIS Свойства сайта -> Домашний каталог -> Усовершенствованный. Другой вариант - это изменить метабазу IIS , чтобы разрешить несколько веб-приложений SSL на одинаковых IP-адресах. Будьте осторожны со второй опцией и убедитесь, что вы знаете, что вы делаете .