我正在寻找并拔掉我的头发,但似乎无法找到解决方案。 我有一个WCF Web服务应用程序,可以在IIS下的Server 2008 R2上正常工作。我现在有一台带有Server 2012 R2的新服务器,我无法让网络服务在IIS下完全运行。
当我从Visual Studio 2008 WCF测试客户端访问Web服务* .svc文件时,它会加载并显示所有Web服务。但是,如果我尝试对其中任何一个进行调用,则会返回错误,如下图所示。
如果您看不到图像:这是测试客户端中返回的错误文本。
无法调用该服务。可能的原因:服务离线或无法访问;客户端配置与代理不匹配;现有代理无效。有关更多详细信息,请参阅堆栈跟踪。您可以尝试通过启动新代理,还原到默认配置或刷新服务来恢复。
对象引用未设置为对象的实例。
服务器堆栈跟踪: 在System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(消息回复,MessageFault错误,字符串操作,MessageVersion版本,FaultConverter faultConverter) 在System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime操作,ProxyRpc& rpc) 在System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneway,ProxyOperationRuntime operation,Object [] ins,Object [] outs,TimeSpan timeout) 在System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneway,ProxyOperationRuntime operation,Object [] ins,Object [] outs) 在System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime操作) 在System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
在[0]处重新抛出异常: 在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg) 在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 type) at iAxRegService.GetSchoolInfo(String DatabaseKey,String OptCommand) at iAxRegServiceClient.GetSchoolInfo(String DatabaseKey,String OptCommand)
再次说明:如果我将WCF客户端转到指向Server 2008 R2上的相同服务,我会收到正确的响应。那么我做错了什么?
非常感谢任何帮助。 好像我已经打开了其他帖子提到的每个选项,包括svc处理程序映射和MIME类型。
这是我的第一篇文章,所以如果我需要提供任何其他信息来帮助,请告诉我。 谢谢。
答案 0 :(得分:0)
好的,我现在可以看到为什么我对这个问题没有回应。 IIS和SQL中的所有内容都已正确设置。 问题是我们的应用程序。它需要经过身份验证的用户,并且Web Service无法对公共匿名用户进行身份验证,因为我们从未将该公共用户添加到允许的用户列表中。 我认为最大的问题是WCF测试客户端,只是给了我无意义的"对象没有设置为对象的实例"错误。 无论如何,我只是想关闭这个问题。