1

奇妙なものがあります。現在、WSS 3.0 に SharePoint WebPart があり、VB.NET と HttpWebRequest オブジェクトを使用して Yahoo Traffic の REST インターフェイスにクエリを実行しています。しかし、Yahoo から、自分が無許可であるというエラー メッセージが表示され続けました。さらに調べてみると、次の URL が yahoo に渡されていることがわかりました: http://local.yahooapis.com/MapsService/V1/trafficData?appid=&city =&状態=&半径=20

パラメータは次のように設定されます。

Private _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

End プロパティ

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 Web パーツにリストされているパラメーターですが、何らかの理由で、これらの Web パーツにデータを入力しているにもかかわらず、空白のまま通過します。群衆からのアイデアはありますか?ありがとう!

4

2 に答える 2

1

それが見つかりました、それは実際にはdefault.masterファイルのばかげた問題でした.「壊れたWebパーツ」Webページで失敗したときにSharePointからスタックダンプを取得する方法を最終的に見つけ出し、その真の起源をたどりました. 試してくれたみんなありがとう!

于 2009-01-27T22:00:16.163 に答える
1

さまざまな WebPartStorage(Storage.Personal) [これはデフォルトで Storage.Personal] プロパティの装飾を試しましたか?

エラーは、コードではなくプロパティのストレージにあると想定しています。

于 2009-01-27T20:17:28.587 に答える