Sharepoint SSL Web.Config проблема с доступом - PullRequest
1 голос
/ 10 февраля 2009

У меня странный сценарий:

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

И файл 80 web.config, и файл 443 web.config содержат одинаковые записи, которые ищет dll, и mosssvc имеет полный контроль над обоими конфигами.

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

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

РЕДАКТИРОВАТЬ: Я должен был быть более ясным: сайт SSL уже создан и работает нормально, пока один метод в сборке GAC не попытается проверить веб-конфигурацию.

Полное сообщение об ошибке:

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 Ответ

1 голос
/ 10 февраля 2009

попробуйте, форма Блог Faranz Kan SharePoint о том, как включить SSL в MOSS:

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