Хорошо, у меня есть странный вопрос, прямо сейчас у меня есть SharePoint WebPart в WSS 3.0, который запрашивает интерфейс REST Yahoo Traffic с помощью VB.NET и объекта HttpWebRequest. Однако я продолжал получать сообщение об ошибке от Yahoo, в котором говорилось, что я не авторизован, при дальнейшем исследовании я заметил, что он передает следующий URL-адрес Yahoo: http://local.yahooapis.com/MapsService/ V1 / trafficData? Appid = & city = & state = & radius = 20

Параметры настроены как таковые:

Частный _AppID как строка

    <Personalizable(True), WebBrowsable(True), WebDisplayName("Yahoo App ID"), WebDescription("Yahoo Application ID")> _
    Public Property AppID() As String
        Get
            Return _AppID

        End Get
        Set(ByVal value As String)
            _AppID = value
        End Set
    End Property

    Private _City As String
    <Personalizable(True), WebBrowsable(True), WebDisplayName("City"), WebDescription("City")> _
    Public Property City() As String
        Get
            Return _City

        End Get
        Set(ByVal value As String)
            _City = value
        End Set
    End Property

    Private _State As String
    <Personalizable(True), WebBrowsable(True), WebDisplayName("State"), WebDescription("State")> _
    Public Property State() As String
        Get
            Return _State

        End Get
        Set(ByVal value As String)
            _State = value
        End Set
    End Property

    Private _radius As String = "-1"
    <Personalizable(True), WebBrowsable(True), WebDisplayName("Radius (in miles)"), WebDescription("Radius in Miles")> _
    Public Property Radius() As String
        Get
            If _radius = "-1" Then
                Return "20"
            Else
                Return _radius
            End If


        End Get
        Set(ByVal value As String)
            _radius = value
        End Set

Конечная собственность

И код, вызывающий REST, выглядит так:

        Dim Url As String = ""
        Try
            Dim aDoc As New d.DataSet
            Url = "http://local.yahooapis.com/MapsService/V1/trafficData?appid=" & Me.AppID & "&city=" & Me.City & "&state=" & Me.State & "&radius=" & Me.Radius
            Dim aRequest As n.HttpWebRequest = CType(n.HttpWebRequest.Create(Url), n.HttpWebRequest)
            Dim aResponse As n.HttpWebResponse
            aResponse = CType(aRequest.GetResponse(), n.HttpWebResponse)
            If aResponse.StatusCode <> Net.HttpStatusCode.OK Then
                Throw New Exception("Server Returned This Code" & aResponse.StatusCode.ToString() & aResponse.StatusDescription)
            End If
            aDoc.ReadXml(aResponse.GetResponseStream())
            Return aDoc
        Catch ex As Exception
            System.Diagnostics.EventLog.WriteEntry("YahooTrafficUtil", ex.Message & ex.StackTrace & Url)
            Dim aContext As System.Web.HttpContext = System.Web.HttpContext.Current
            aContext.Trace.Warn(ex.ToString() & ex.StackTrace)
            childException = ex
            Return Nothing

Конец попытки

Это на тестовом сервере, к которому я не могу получить доступ для отладки, но мой сервер разработки работает нормально, все проходит, никаких проблем.

Параметры AppId, City и State перечислены в моей веб-части SharePoint, но по какой-то причине, несмотря на то, что я заполняю эти веб-части, они пропускаются. Есть идеи из толпы? Спасибо!

1
tekiegreg 27 Янв 2009 в 20:52

2 ответа

Лучший ответ

Обнаружил, на самом деле это была тупая проблема с файлом default.master, мне наконец удалось выяснить, как получить дамп стека из SharePoint, когда он терпит неудачу с веб-страницей «сломанной веб-части» и проследить его истинное происхождение. Спасибо всем, кто пробовал!

1
tekiegreg 28 Янв 2009 в 01:00

Вы экспериментировали с различными украшениями свойств WebPartStorage (Storage.Personal) [по умолчанию Storage.Personal]?

Я предположил, что ошибка связана с хранением свойства, а не кода.

1
Nat 27 Янв 2009 в 23:17
Хорошая попытка дала мне больше информации о свойствах, доступных для веб-части, но на этот раз ответом была моя собственная глупость.
 – 
tekiegreg
28 Янв 2009 в 01:05