我为我的QBWC创建了一个WCF服务端点来调用。我已经通过HTTPS接触并实施了合同。
连接器具有以下QWC文件:
<?xml version="1.0"?>
<QBWCXML>
<AppName>QuickBooks Integrator</AppName>
<AppID></AppID>
<AppURL>https://<URL>/QuickBookConnector.svc</AppURL>
<AppDescription>Used to integrate with Quickbooks install</AppDescription>
<AppSupport>http://<URL></AppSupport>
<UserName>depQB</UserName>
<OwnerID>{GUID}</OwnerID>
<FileID>{GUID}</FileID>
<QBType>QBFS</QBType>
<Scheduler>
<RunEveryNMinutes>2</RunEveryNMinutes>
</Scheduler>
<IsReadOnly>false</IsReadOnly>
<Style>Document</Style>
<AuthFlags>0xF</AuthFlags>
</QBWCXML>
连接器将触发并调用serverVersion,cientVersion然后进行身份验证。在进行身份验证后,它说&#34;身份验证失败。&#34;但是在Web服务中我甚至没有检查用户名和密码是。这就是我在日志中得到的结果。
20150811.17:07:20 UTC:QBWebConnector.SOAPWebService.do_serverVersion(): *调用serverVersion()。 20150811.17:07:20 UTC:QBWebConnector.SOAPWebService.do_serverVersion():从serverVersion调用的Web服务收到的实际错误:。为了向后兼容所有Web服务器,QBWC将捕获app-not-supported-serverVersion下的所有错误。 20150811.17:07:20 UTC:QBWebConnector.SOAPWebService.do_serverVersion():此应用程序不包含对serverVersion的支持。允许更新操作以实现向后兼容。 20150811.17:07:20 UTC:QBWebConnector.SOAPWebService.do_clientVersion(): 使用以下参数调用clientVersion(): 20150811.17:07:20 UTC:QBWebConnector.SOAPWebService.updateWS():从clientVersion调用的Web服务收到的实际错误:。为了向后兼容所有Web服务器,QBWC将捕获app-not-supported-clientVersion下的所有错误。 20150811.17:07:20 UTC:QBWebConnector.SOAPWebService.do_clientVersion():此应用程序不包含对clientVersion的支持。允许更新操作以实现向后兼容。 20150811.17:07:20 UTC:QBWebConnector.SOAPWebService.do_authenticate():对应用程序进行身份验证&#39; DEP QuickBooks Integrator&#39;,username =&#39; depQB&#39; 20150811.17:07:20 UTC:QBWebConnector.SOAPWebService.do_authenticate(): 使用以下参数调用authenticate(): 20150811.17:07:20 UTC:QBWebConnector.SOAPWebService.do_authenticate():QBWC1012:***由于以下错误消息,身份验证失败。 请求失败,HTTP状态为404:Not Found。* 更多信息: StackTrace = at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message,WebResponse response,Stream responseStream,Boolean asyncCall) 在System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object []参数) 在QBWebConnector.localhost.WCWebServiceDoc.authenticate(String strUserName,String strPassword) 在QBWebConnector.localhost.WCWebService.authenticate(String strUserName,String strPassword) 在QBWebConnector.SOAPWebService.authenticate(String UserName,String Password) 在QBWebConnector.WebService.do_authenticate(String&amp; ticket,String&amp; companyFileName) Source = System.Web.Services
现在它说它得到404错误。但是,我可以采用与&#34; AppURL&#34;完全相同的URL。 QWC文件的一部分并将其放在浏览器中并加载服务页面。浏览器可以访问服务URL,但QBWC可以“
”有什么想法吗?
答案 0 :(得分:2)
这是我自己的想念。我们所有的服务都包含一个激活器,对于其他人来说,这些呼叫不需要服务和运营合同。但是,QBWC不喜欢这样,并在“身份验证失败”屏幕上报告,因为它无法找到任何方法。
由于文献资料有限,我想为其他任何偶然发现的人提供答案。别忘了这些家伙。
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.57.0")]
[ServiceContract(Namespace = "http://developer.intuit.com/")]
[System.Web.Services.WebServiceBindingAttribute(Name = "QuickBookConnectorService", Namespace = "http://developer.intuit.com/")]
[OperationContract(Action = "http://developer.intuit.com/clientVersion")]
[XmlSerializerFormat(Style = OperationFormatStyle.Document, Use = OperationFormatUse.Literal)]
它们与旧的ASMX方法与WCF中提供的示例不同。