我需要调用Web服务来接收JSON对象,我将在呈现内容之前解析它。这里的代码相同:对WebParts使用RenderControl()内部的WebRequest.Create
Dim jResponse As MessageResponseWrapper = New MessageResponseWrapper() 'Custom class to deserialize JSON
Dim req As System.Net.HttpWebRequest
req = System.Net.WebRequest.Create("http://some-cross-domain?q=" & SearchKeyword & "&restapi.response_style=view&xslt=json.xsl")
req.Method = WebRequestMethods.Http.Get
Dim res As HttpWebResponse = req.GetResponse()
Dim reader As New StreamReader(res.GetResponseStream())
Dim json As String = reader.ReadToEnd()
Dim ser As New DataContractJsonSerializer(GetType(MessageResponseWrapper))
Using ms As New MemoryStream(Encoding.Unicode.GetBytes(json))
jResponse = TryCast(ser.ReadObject(ms), MessageResponseWrapper)
End Using
这可以作为一个独立的ASP.Net页面。但是,我需要将此作为Web部件移植到Sharepoint站点。使用描述的方法here我已经在RenderControl()方法中给出了上述代码。我收到错误“The CustomWebPart”Web Part似乎出现问题,请求“System.Net.WebPermission,System,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”类型的权限失败。
我已经尝试过在web.config中包含以下行的变体,但无济于事。
<SafeControl Assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Net" TypeName="WebPermission" Safe="True" AllowRemoteDesigner="True" />
任何想法?
你部署和激活网络部分在您的SharePoint安装? – 2010-09-20 16:16:18
只要将Web部件分配给页面,我就会收到错误消息。是的,它填充在Webpart画廊 – 2010-09-21 03:55:37
我认为这是因为它跨域调用。任何方式呢? – 2010-09-22 11:05:52