Frage

Wie löse ich den Fehler:

  

Nicht imstande, WSDL von URL zu lesen: https://workflowtest.site.edu/ _vti_bin / Lists.asmx? WSDL .
  Fehler:. 401 Unauthorized

Ich kann erfolgreich die WSDL aus dem Browser betrachtet das gleiche Benutzerkonto. Ich bin mir nicht sicher, welche die Authentifizierung verwendet wird (Basic oder Integrated).

Wie soll ich das wissen?

Der Code Tätigen eines Anrufs ist:

<cfinvoke 
  username="username" 
  password="password"
  webservice="https://workflowtest.liberty.edu/_vti_bin/Lists.asmx?WSDL" 
  method="GetList" 
  listName="{CB02EB71-392E-4906-B512-8EC002F72436}"
>

Der Eindruck, den ich bekommen ist, dass Coldfusion nicht werden gemacht mag zu authentifizieren, die WSDL zu erhalten.

Voll 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)
War es hilfreich?

Lösung

cfinvoke kann nur grundlegende Authentifizierung bestanden haben, nicht integrierte Windows-Authentifizierung.

Sharepoint nicht auf die Standardauthentifizierung Herabstufung der Lage sein, da Sharepoint wissen muss, wer die Dienste ruft die Authentifizierung und Autorisierung zu überprüfen, der die Daten angefordert werden.

Sie am besten ist es, eine asp.net-Proxy-Dienst erstellen Sie mit cfinvoke aufrufen können, die die Windows-Authentifizierung Identitätswechsel finden Sie die Sharepoint-Web-Service aufrufen müssen.

Eine andere Möglichkeit wäre eine C # COM-Objekt zu erstellen, die den authentifizierten Anruf tätigt und leitet die Informationen an CF, wenn Sie den C # COM-Objekt aus CF nennen.

Andere Tipps

Dieser Blog-Eintrag auf cfsilence.com helfen könnte. Coldfusion / Sharepoint-Integration - Teil 1 - Authentifizieren

Was es läuft darauf hinaus:

  • Coldfusion verwendet die Apache Axis Webservice Bibliothek
  • standardmäßig, kann diese Bibliothek tut nichts anderes als grundlegende HTTP-Authentifizierung
  • Sie können Achsen konfigurieren eine alternative HTTP-Client-Bibliothek (Jakarta Commons)
  • verwenden
  • dies kann NTLM-Authentifizierung tun, keine Notwendigkeit, Code oder IIS-Authentifizierungsschema ändern
  • nach einem Neustart von Coldfusion, sollten Sie gut gehen

Ich weiß nichts über Coldfusion, aber ich meine erste Verdächtige wäre eine einfache permision Problem eher als etwas CF spezifisch.

Ist die CF Aufruf Verwendung Basic oder Integrierte Authentifizierung? Ist IIS Spiel? mit IE / Firefox und dem gleichen Benutzerkonto können Sie auf die WSDL durchsuchen?

Es ist es ein Berechtigungsfehler wie Darpy und Ryan vorschlägt, ist die einfachste Sache zu tun, um die richtige Erlaubnis zu Coldfusion zu gewähren. Unter Windows Coldfusion Vorgaben und läuft als das lokale Systemkonto. Sie können das ändern, indem sie die LogOn Eigenschaften des Windows-Dienst für Coldfusion zu aktualisieren.

Ich hatte das gleiche Problem.

Öffnen Sie IIS und die Login auf Basis ändern. (In meinem Deutsch Windows-es ist: "Verzeichnissicherheit" -> "Steuerung des anonymen Zugriffs und der Authentifizierung" -> "Bearbeiten" -> Setzen Sie das Kontrollkästchen für "Standardauthentifizierung")

-Kevin

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top