Unbefugte Sharepoint WSDL von ColdFusion 8
Wie behebe ich den Fehler:
Nicht in der Lage zu Lesen, WSDL URL: https://workflowtest.site.edu/_vti_bin/Lists.asmx?WSDL.
Fehler: 401 Unauthorized.
Kann ich erfolgreich anzeigen, die WSDL aus dem browser mit dem gleichen Benutzer-Konto.
Ich bin mir nicht sicher, welche Authentifizierung verwendet wird (Basic oder Integriert).
Wie würde ich das herausfinden?
Den code den Aufruf ist:
<cfinvoke
username="username"
password="password"
webservice="https://workflowtest.liberty.edu/_vti_bin/Lists.asmx?WSDL"
method="GetList"
listName="{CB02EB71-392E-4906-B512-8EC002F72436}"
>
Den Eindruck, den ich bekomme, ist, dass ColdFusion nicht gerne gemacht wird, sich zu authentifizieren, um die WSDL.
Volle stack-trace:
coldfusion.xml.rpc.XmlRpcServiceImpl$CantFindWSDLException: Unable to read WSDL from URL: https://workflowtest.liberty.edu/_vti_bin/Lists.asmx?WSDL.
at coldfusion.xml.rpc.XmlRpcServiceImpl.retrieveWSDL(XmlRpcServiceImpl.java:709)
at coldfusion.xml.rpc.XmlRpcServiceImpl.access$000(XmlRpcServiceImpl.java:53)
at coldfusion.xml.rpc.XmlRpcServiceImpl$1.run(XmlRpcServiceImpl.java:239)
at java.security.AccessController.doPrivileged(Native Method)
at coldfusion.xml.rpc.XmlRpcServiceImpl.registerWebService(XmlRpcServiceImpl.java:232)
at coldfusion.xml.rpc.XmlRpcServiceImpl.getWebService(XmlRpcServiceImpl.java:496)
at coldfusion.xml.rpc.XmlRpcServiceImpl.getWebServiceProxy(XmlRpcServiceImpl.java:450)
at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:413)
at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2662)
at cftonytest2ecfm1787185330.runPage(/var/www/webroot/tonytest.cfm:16)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:370)
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:279)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:74)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.CfmServlet.service(CfmServlet.java:175)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrun.servlet.FilterChain.service(FilterChain.java:101)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
Du musst angemeldet sein, um einen Kommentar abzugeben.
CFInvoke können nur pass-basic-Authentifizierung, nicht die integrierte windows-Authentifizierung.
Sharepoint nicht in der Lage sein, ein downgrade auf basic Authentifizierung, da sharepoint muss wissen, wer anruft, die Dienste zu überprüfen, die Authentifizierung und Autorisierung der Daten angefordert wird.
Ihre beste Wette ist hier zu erstellen asp.net proxy-service, den Sie aufrufen können, mit CFInvoke die Identität der windows-Authentifizierung müssen Sie rufen Sie die sharepoint-web-service.
Andere Möglichkeit wäre das erstellen einer C# com-Objekt, das macht den authentifizierten Anruf und gibt die Informationen zurück zu CF beim Aufruf des C# - com-Objekt von VGL.
Diesem blog-post auf cfsilence.com helfen könnte. ColdFusion - /Sharepoint-Integration - Teil 1 - Authentifizierung
Was es hinausläuft:
Ich weiß nichts über ColdFusion, aber ich mein Erster Verdacht wäre eine einfache Genehmigung problem eher als alles andere CF-spezifisch.
Bedeutet, dass die CF-call verwenden Sie die Standardauthentifizierung oder die Integrierte Authentifizierung? Tut IIS-match?
Können Sie durchsuchen, um die WSDL-Datei mit der IE/Firefox und den gleichen Benutzer-Konto?
Es ist ein Fehler der Zugriffsrechte wie darpy und Ryan vermuten, die einfachste Sache zu tun ist, gewähren Sie das Recht die Erlaubnis zu ColdFusion. Auf Windows -, ColdFusion-Standardwerte und läuft als Lokales System-Konto. Sie können das ändern, durch Aktualisierung der LogOn-Eigenschaften der Windows-Dienst für ColdFusion.
Ich hatte das gleiche problem.
Öffnen Sie Ihre IIS, und ändern Sie die LoginType zu Basic.
(in meinem deutschen Windows heißt es: "Verzeichnissicherheit" -> "Steuerung des Anonymen Zugriffs und der Authentifizierung" -> "Bearbeiten" -> Setzen Sie das Häckchen bei "Standardauthentifizierung" )
-Kevin