Запрос на разрешение типа 'System.Net.WebPermission, Failed

Редактировать ИСПРАВЛЕНО!: Я чувствую себя глупо; Таким образом, после нескольких дней исследований и отладки, а что нет, ответ был / был, что веб-сайты были настроены одинаково, за исключением одного места, которое я никогда не думал искать; каталоги на действующем сайте были случайно созданы с использованием административного общего ресурса вместо локального физического пути на сервере. После переключения пути на действующем сайте API-интерфейс работает, как и предполагалось, с остальным кодом.

Оригинальная проблема:

У меня есть два веб-сайта, которые размещены на одном сервере в одном пуле приложений. Веб-сайт 1 - моя испытательная кровать. У меня есть небольшой класс, который пытается вызвать функцию третьей части, которая в основном равна проверке того, что данный пользователь существует в допустимых пользователях третьей стороны. Если это так, он возвращает true, иначе возвращает false. Если возврат верен, он будет перенаправлен к этой третьей стороне, в противном случае пользователь ничего не знает о третьей стороне.

На моем сайте разработки у меня код работает на 100% без ошибок, и в любом случае я получаю ожидаемый результат. Это всегда работало здесь, никогда не было проблемой. Однако, когда я перемещаю его на действующий сайт, я получаю Запрос на разрешение типа 'System.Net. WebPermission, Failed. После продолжительного поиска в Google я все еще озадачен, это были дни. Вот почему я так озадачен:

  1. Сервер и учетная запись, под которой работают live и dev-сайт, идентичны.
  2. Их пулы приложений - одно и то же
  3. Код на 100% идентичен.
  4. Web.configs идентичны.

Возможно, самая загадочная часть этого - то, что я использую систему мастер-страниц в vb.net. Код фактически выполняется в событии page_load главной страницы. Сайт разработчика работает без проблем, но как только вы даже пытаетесь загрузить страницу, код выдает исключение. Самым странным является то, что если я возьму код из главной страницы page_load и создам новую пустую страницу, содержащую только этот вызов и код page_load, который его вызывает, это сработает.

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

Что я до сих пор пытался решить эту проблему:

  1. Загрузить профиль пользователя = true в AppPool
  2. Сделал прямое сравнение кода, чтобы убедиться, что это 1:1
  3. Подтвержденное разрешение для учетной записи, под которой работает
  4. Перезагрузка веб-серверов
  5. Установить полное доверие через веб / конфиг

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

Sub page_load()      
    If Not Page.IsPostBack Then
        Dim SFUser As New StorefrontUser
        'Response.Write(SFUser.GetadminticketValue)
        If SFUser.isActiveStorefrontUser = 1 Then
            LBCELink.Style.Add("visibility", "visible")
        Else
            LBCELink.Style.Add("visibility", "hidden")
        End If
    End If
End Sub

И вот класс / функция, которую он вызывает: Public Class StorefrontUser Dim storefront As New SXI.StorefrontAPIHelper("http://subdomain.blah.com/3rdpartyAPI.asmx")

Function isActiveStorefrontUser() As String
    If GetAdminTicket() <> "UNAUTHORIZED ACCESS" Then
        Return storefront.GetValue("UserProperty", "IsActive", storefront.FindUserID(theID))
    Else
        Return "1"
    End If

End Function
Function GetadminticketValue() As String
        Return GetAdminTicket()

End Function
Public Function GetAdminTicket() As String
    Dim ScratchTicket As String = String.Empty
    Try
        ScratchTicket = storefront.ObtainUserTicket("user", "password", "Identity")
    Catch ex As Exception
        HttpContext.Current.Response.Write(ex.ToString)
        ScratchTicket = String.Empty
    End Try
    Return ScratchTicket
End Function

End Class

Прекрасно работает на Live-сайте, если он не является частью главной страницы, которой он должен быть, отлично работает на любом другом сайте. Совершенно в тупик. Извиняюсь, если мое форматирование плохое или у моего вопроса нет ясности; Первый раз звонящий, долгое время слушатель.

Последняя важная часть информации заключается в том, что для использования их API требуется ссылка на сторонние dll - что кажется допустимым предметом спора, за исключением того, что он работает на пустой странице, которую я создал, но не на этой главной странице, которая идентичен главной странице сайта разработчика.

Заранее спасибо за любой свет, который вы можете пролить.

0 ответов

Другие вопросы по тегам