简体   繁体   English

Sharepoint 2010 WCF服务的问题

[英]Sharepoint 2010 problems with WCF service

I need to create wcf service for sharepoint 2010. The idea to use Jquery ajax to communicate with this service. 我需要为sharepoint 2010创建wcf服务。使用Jquery ajax与此服务进行通信的想法。 But all cals to service methods always fail. 但所有服务方法的cals总是失败。 The

I try to use WCF Test Client and get message: 我尝试使用WCF测试客户端并获取消息:

Failed to invoke the service. Possible causes: The service is offline or inaccessible; the client-side configuration does not match the proxy; the existing proxy is invalid. Refer to the stack trace for more detail. You can try to recover by starting a new proxy, restoring to default configuration, or refreshing the service.

and error detais: 和错误细节:

    The content type text/html; charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 227 bytes of the response were: 'A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - Either a required impersonation level was not provided, or the provided impersonation level is invalid.)'.

Server stack trace: 
   at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at ITV2WCFService.DoWork()
   at TV2WCFServiceClient.DoWork()

在此输入图像描述

But service http://localhost/_vti_bin/site/TEMPSERVICE.svc/mex is avaliable and give me normal response. 但服务http://localhost/_vti_bin/site/TEMPSERVICE.svc/mex是可用的,并给我正常的响应。

Everything done according to article on msdn 根据msdn上的文章做的一切

http://msdn.microsoft.com/en-us/library/ff521581.aspx http://msdn.microsoft.com/en-us/library/ff521581.aspx

Whats the problem and how to deal with it? 问题是什么以及如何处理它?

Evgeny: 叶夫根尼:

It looks like your webservice returns standard SOAP XML response. 看起来您的webservice返回标准SOAP XML响应。 JQuery expects to use JSON. JQuery希望使用JSON。 I think the easier way is to set JQuery to use XML. 我认为更简单的方法是将JQuery设置为使用XML。 Alternatively you can change your web service to return JSON instead of XML. 或者,您可以更改Web服务以返回JSON而不是XML。

解决方案:必须启用匿名访问!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM