Исключение безопасности ASP.NET WebPermission - PullRequest
3 голосов
/ 29 октября 2008

Я обычно ненавижу публиковать подобные вопросы, так как обычно я считаю, что лучший способ действительно научиться - это найти ответ самостоятельно.

Однако мне нужно очень быстро ответить на этот вопрос, поскольку у меня есть клиент, который не может вести свой бизнес из-за этой проблемы.

Вчера мой хост-провайдер ASP.NET переместил мое приложение с сервера под управлением .NET 1.1 на сервер под управлением .NET 1.1 и 2.0. Моя проблема в том, что при тестировании перемещения главная страница сайта (Default.aspx) не загружается

"Описание: приложение попыталось выполнить операцию, не разрешенную политикой безопасности. Чтобы предоставить этому приложению необходимое разрешение, обратитесь к системному администратору или измените уровень доверия приложения в файле конфигурации.

Сведения об исключении: System.Security.SecurityException: сбой запроса разрешения типа 'System.Net.WebPermission, System, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089'.

[SecurityException: запрос на разрешение типа 'System.Net.WebPermission, System, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089' не выполнен.] System.Security.CodeAccessSecurityEngine.Check (Требование объекта, StackCrawlMark & ​​stackMark, логическое значение isPermSet) +0 System.Security.CodeAccessPermission.Demand () +59 System.Net.HttpWebRequest..ctor (Uri uri, ServicePoint servicePoint) +147 System.Net.HttpRequestCreator.Create (Uri Uri) +26 System.Net.WebRequest.Create (Uri requestUri, логическое использование UriBase) +298 System.Net.WebRequest.Create (Uri requestUri) +28 System.Web.Services.Protocols.WebClientProtocol.GetWebRequest (Uri uri) +30 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebRequest (Uri uri) +12 System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest (Uri uri) +4 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (String methodName, Object [] параметры) +52 PilatesPlusDublin.PilatesPlusDublinws.PilatesPlus.InsertException (String sModuleName, String sException, Int32 iUserID) +97 PilatesPlusDublin.MainDefault.Page_Load (Отправитель объекта, EventArgs e) +144 System.Web.UI.Control.OnLoad (EventArgs e) +99 System.Web.UI.Control.LoadRecursive () +47 System.Web.UI.Page.ProcessRequestMain (логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint) +7350 System.Web.UI.Page.ProcessRequest (логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint) +213 System.Web.UI.Page.ProcessRequest () +86 System.Web.UI.Page.ProcessRequestWithNoAssert (контекст HttpContext) +18 System.Web.UI.Page.ProcessRequest (контекст HttpContext) +49 ASP.maindefault_aspx.ProcessRequest (контекст HttpContext) +4 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +358 System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep, логическое и завершено синхронно) +64 "

Если WebPermission недоступен на хостинг-сайте, как мне настроить свой сайт, чтобы разрешить доступ к странице? Есть ли какие-то теги, которые нужно поместить в файл web.config? Примечание. У нас нет доступа к machine.config или другим настройкам IIS.

Я понимаю, что люди ненавидят читать и отвечать на такие вопросы, но любая помощь в том, что я или мой хостинг-сайт нужно сделать, чтобы это исправить, была бы чрезвычайно признательна

Ответы [ 4 ]

5 голосов
/ 07 ноября 2008

Не уверен, поможет ли это, но однажды у меня был клиент с такой же проблемой. Их веб-хостинг компания внесла некоторые изменения, в результате чего их веб-сайт выбрасывает подобные ошибки. Удалось снова заработать, добавив следующее прямо в раздел System.Web в web.config:

<trust level="Full" />

Если это не решит вашу проблему и веб-хостинг не сможет исправить их до нового года, я бы серьезно подумал о смене хостинг-провайдеров.

2 голосов
/ 30 октября 2008

Я публикую это на тот случай, если это поможет кому-то еще. Будьте предупреждены, прежде чем они перенесут существующий сайт ASP.NET, размещенный вашим провайдером, на другой сервер.

УБЕДИТЕСЬ, ЧТО ВЫ СПРАШИВАЕТЕ О ВЕБПЕРМИССИЯХ И УРОВНЯХ ДОВЕРИЕ.

Это был мой ответ провайдеров ....

"Спасибо за ваше письмо.

Сбой, потому что WebPermission недоступен в среде со средним доверием.

В настоящее время мы не можем вносить какие-либо изменения в эти серверы, поскольку к концу этого года планируем перенести все сайты в пару новых кластеров. Я уверен, что в новом кластере Windows будет доступна WebPermission, поскольку она включена в текущем кластере Namesco Windows. «

Таким образом, они ожидают, что сайт моего клиента будет отключен и потеряет бизнес до Нового года.

2 голосов
/ 07 ноября 2008

Точно так же, как к вашему сведению, для тех, у кого может быть такая же проблема - я получил это точное сообщение об ошибке и не смог выяснить, что было не так, поскольку я не изменил никаких настроек в своем локальном окне.

Через пару минут я понял, что случайно открыл проект из общего сетевого ресурса на Windows Server 2008. Конечно, разрешения не были правильными! Действительно глупый ход, но если кому-то это поможет, я готов быть униженным :)

1 голос
/ 29 октября 2008

Ваше веб-приложение вызывает веб-службу или получает доступ к внешним веб-сайтам? В этом случае вам может потребоваться поговорить с вашим хостинг-провайдером и попросить добавить URI в список разрешенных конечных точек подключения.

...