I cannot get QuickBooks to start up from the Web Connector. I am passing valid filepath, everything looks right according to the documentation.
QBWC version is 2.1.0.3.0
QB Ver is Premier Contractor Edition 2010
If I have QuickBooks open already, the Web Connector runs fine. If it's not open, I get the QBWC1013 error...
Relevant portion of log:
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : Initiated connection to the following application.
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppName: FOO
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppUniqueName (if available): FOO
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppURL: https://www.foo.com/server.php
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : *** Calling serverVersion().
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : Received from serverVersion() following parameter:<serverVersionRet="PHP QuickBooks SOAP Server v1.5.3 at /server.php">
20130312.14:14:56 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : *** Calling clientVersion() with following parameter:<productVersion="2.1.0.30">
20130312.14:14:57 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : Received from clientVersion() following parameter:<clientVersionRet="">
20130312.14:14:57 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : This application agrees with the current version of QBWebConnector. Allowing update operation.
20130312.14:14:57 UTC : QBWebConnector.SOAPWebService.do_authenticate() : Authenticating to application 'FOO', username = 'foo'
20130312.14:14:57 UTC : QBWebConnector.SOAPWebService.do_authenticate() : *** Calling authenticate() with following parameters:<userName="foo"><password=<MaskedForSecurity>
20130312.14:14:58 UTC : QBWebConnector.SOAPWebService.updateWS() : Received from authenticate() following parameters:<authRet[0]="91f62aac622b49ad483f20ef9d7729a3"><authRet[1]=""\\FOOSERVER\Users\Public\Documents\Intuit\QuickBooks\Company Files\Some Company File Inc..QBW""><authRet[2]=""><authRet[3]="">
20130312.14:14:58 UTC : QBWebConnector.RegistryManager.setCurrentWebServiceName() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\CurrentWebServiceName has been set to FOO
20130312.14:14:58 UTC : QBWebConnector.RegistryManager.setCurrentWebServiceSessionTicket() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\CurrentWebServiceSessionTicket has been set to 91f62aac622b49ad483f20ef9d7729a3
20130312.14:14:58 UTC : QBWebConnector.SOAPWebService.CheckCFNResponse() : User authenticated.
20130312.14:14:58 UTC : QBWebConnector.SOAPWebService.do_authenticate() : Done.
20130312.14:14:58 UTC : QBWebConnector.SOAPWebService.OpenConnection() : Connecting to QuickBooks...
20130312.14:14:58 UTC : QBWebConnector.SOAPWebService.handleAllOtherError() : QBWC1013: Error connecting to QuickBooks. Returning error message to application.
Could not start QuickBooks.
20130312.14:14:58 UTC : QBWebConnector.SOAPWebService.do_connectionError() : *** Calling connectionError() with following parameters:<wcTicket="91f62aac622b49ad483f20ef9d7729a3"><hresult="0x80040408"><message="Could not start QuickBooks.">
20130312.14:14:59 UTC : QBWebConnector.SOAPWebService.do_connectionError() : Received from connectionError() following parameters:<tryAgain="done">
20130312.14:14:59 UTC : QBWebConnector.SOAPWebService.OpenConnection() : Error connecting to QuickBooks. Application sent back DONE. Job ending.
20130312.14:14:59 UTC : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False
20130312.14:14:59 UTC : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked *********************
20130312.14:14:59 UTC : QBWebConnector.WebServiceManager.DoUpdateSelected() : Update completed with errors. See log (QWClog.txt) for details.
I'm going to assume that your QWC file is with the correct format.
If may looks something like this
<QBWCXML>
<AppName>Example WS</AppName>
<AppID></AppID>
<AppURL>https://localhost/Quickbooks.asmx</AppURL>
<AppDescription>Example Service Service</AppDescription>
<AppSupport>https://localhost/</AppSupport>
<UserName>Etile</UserName>
<OwnerID>{XXXXB9B1-86F1-4fcc-B1EE-566DE1813D20}</OwnerID>
<FileID>{XXXX4FB5-33D9-4815-AC85-BC87A7E7D1EB}</FileID>
<QBType>QBFS</QBType>
<Scheduler>
<RunEveryNMinutes>1</RunEveryNMinutes>
</Scheduler>
</QBWCXML>
When you add the application to QuickBooks's Web Connector, you will be prompted to allow the application access to QuickBooks data. You need to select the last option "Yes, always; allow access even if QuickBooks is not running"
And don't forget to return the full path to the company file from your Web Service's authenticate() method.
A Sample SOAP Response would be:
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://developer.intuit.com/">
<SOAP-ENV:Body>
<ns1:authenticateResponse>
<ns1:authenticateResult>
<ns1:string>1e3ea2ed-a734-03e4-ed8c-80eb12f19845</ns1:string>
<ns1:string>C:\Quickbooks Company File.QBW</ns1:string>
</ns1:authenticateResult>
</ns1:authenticateResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Note that if you are using quickbooks-php, the file must be added manually for some reason. The Web Connector documentation and the new QuickBooks integration wiki both lack clarity on this detail.
I was banging my head against the wall on this but after 4 hours on the phone with Intuit and finally having the tier 2 engage there development team they clued me to into some more details on this vague as hell error. When you get this error the problem is not that it can't start quickbooks its that you're request from your server is attempting to open the file incorrectly. Things that will cause this. The name of the file is wrong, the path of the file is wrong. Your request is not formatted correctly.
In my case we had the file name correct but my server was suppose to pull the path of the file which you can confirm in the register at hkey_current_user\software\intuit\qbwebconnector\soapwebservices\ look for companyfile and you'll see the name and full path.
hope this helps someone deal with this vague error.
As log data is showing -> user authenticated, that means .qwc file is in correct format. After authentication, web connector is making a request to QuickBook to connect, which is failing in your case.
Steps to connect to QuickBooks desktop through web connector are :
Run web service and QuickBook desktop application in Admin mode
Name of web service and QuickBook company name should be same
Run QuickBook desktop in multi-user mode so that you can connect QuickBook through web connector as well.
In web service code, if user is authentic then make authReturn[1]=""
// to connect to the company file that is currently openned in QuickBooks
It worked for me.
All the best for you.
Related
1.This is the behavior I am observing when I use Update DriveItem graph API to update my file name.https://learn.microsoft.com/en-us/graph/api/driveitem-update?view=graph-rest-1.0&tabs=http.
2.If the file is open in my office desktop document it throws locked exception. If i close the file renaming works fine.
3.I tested same in sharepoint their UI ,I am able to rename the file.But through graph API it throws locked exception if file is open.
Is this error expected ?. How can I get around this
https://learn.microsoft.com/en-us/graph/api/driveitem-update?view=graph-rest-1.0&tabs=http.
PATCH https://graph.microsoft.com/v1.0/drives/b!qnfox2pppU-AeWEPhWpRhNiB9gIq_ANJq5NFCiklU2Y5F3fDc7fsaQvB/items/014UHAXWYO5LX2RTA6YZE37E4XTG45PTTW
SdkVersion : graph-java/v1.6.0
Authorization : Bearer
{"name":"V-blah (1) (113_0_4_26).docx"}
423 : Locked
Strict-Transport-Security : max-age=31536000
Cache-Control : private
x-ms-ags-diagnostic : {"ServerInfo":{"DataCenter":"West US","Slice":"SliceC","Ring":"5","ScaleUnit":"000","RoleInstance":"AGSFE_IN_57"}}
client-request-id : 33f16bde-55d1-XXXX
request-id : XXXXXXX
Content-Length : 251
Date : Sat, 02 May 2020 04:05:23 GMT
Content-Type : application/json
{
"error": {
"code": "resourceLocked",
"message": "The resource you are attempting to access is locked",
"innerError": {
"request-id": "d1bfa1f2-cXXXXX",
"date": "2020-05-02T04:05:23"
}
}
}
Ensure that the document library does not have "check-in required" enabled.
Assuming check-in is not required, I received the same HTTP 423 "resourceLocked" response for both scenarios: file opened in the browser (SharePoint Online UI) and file opened in desktop client. I believe this is working by design that you can't update a file's name when it is currently opened by another user or yourself in another instance.
Please see this reference about files locked for editing.
Try adding the HeaderOption that bypasses the shared lock, to the request.
new Microsoft.Graph.HeaderOption("Prefer", "bypass-shared-lock")
If you are using the graphServiceClient, add it to a List and pass it directly in your Request.
I am syncing data between QuickBooks and my MVC application. I am able to sync data while keeping the Company file open in the QuickBooks but not able to sync data when I close the QuickBooks window. I am getting below error:
My problem is, I can't keep open single company file as I have to sync data with multiple company files as well.
Here is the Here is the Log from QWCLog.txt
20190228.04:23:59 UTC : QBWebConnector.WebServiceManager.DoUpdateSelected() : updateWS() for application = 'Atria By FES - Future Energy Solutions Contracts No.1, LLLP - Customer' has STARTED
20190228.04:23:59 UTC : QBWebConnector.RegistryManager.getUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock = FALSE
20190228.04:23:59 UTC : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to True
20190228.04:23:59 UTC : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session locked *********************
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : Initiated connection to the following application.
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppName: Atria By FES - Future Energy Solutions Contracts No.1, LLLP - Customer
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppUniqueName (if available): Atria By FES - Future Energy Solutions Contracts No.1, LLLP - Customer
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppURL: https://atriabyfes.com:9096/WebServices/FutureEnergySolutionsContractsNoOneLLLP_Customer.asmx?wsdl
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : *** Calling serverVersion().
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : Received from serverVersion() following parameter:<serverVersionRet="2.0.0.1">
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : *** Calling clientVersion() with following parameter:<productVersion="2.3.0.20">
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : Received from clientVersion() following parameter:<clientVersionRet="">
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : This application agrees with the current version of QBWebConnector. Allowing update operation.
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.do_authenticate() : Authenticating to application 'Atria By FES - Future Energy Solutions Contracts No.1, LLLP - Customer', username = 'Admin'
20190228.04:24:00 UTC : QBWebConnector.SOAPWebService.do_authenticate() : *** Calling authenticate() with following parameters:<userName="Admin"><password=<MaskedForSecurity>
20190228.04:24:01 UTC : QBWebConnector.SOAPWebService.updateWS() : Received from authenticate() following parameters:<authRet[0]="7bc6c7bb-bbb9-461f-9eae-2e45284704d8"><authRet[1]="C:\QB\QuickBooks Company File\Future Energy Solutions Contracts No.1, LLLP.QBW"><authRet[2]=""><authRet[3]="">
20190228.04:24:01 UTC : QBWebConnector.RegistryManager.setCurrentWebServiceName() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\CurrentWebServiceName has been set to Atria By FES - Future Energy Solutions Contracts No.1, LLLP - Customer
20190228.04:24:01 UTC : QBWebConnector.RegistryManager.setCurrentWebServiceSessionTicket() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\CurrentWebServiceSessionTicket has been set to 7bc6c7bb-bbb9-461f-9eae-2e45284704d8
20190228.04:24:01 UTC : QBWebConnector.SOAPWebService.CheckCFNResponse() : User authenticated.
20190228.04:24:01 UTC : QBWebConnector.SOAPWebService.do_authenticate() : Done.
20190228.04:24:01 UTC : QBWebConnector.SOAPWebService.OpenConnection() : Connecting to QuickBooks...
20190228.04:24:14 UTC : QBWebConnector.SOAPWebService.handleAllOtherError() : QBWC1013: Error connecting to QuickBooks. Returning error message to application.
Unexpected error. Check the "qbsdklog.txt" file for possible additional information.
20190228.04:24:14 UTC : QBWebConnector.SOAPWebService.do_connectionError() : *** Calling connectionError() with following parameters:<wcTicket="7bc6c7bb-bbb9-461f-9eae-2e45284704d8"><hresult="0x80040402"><message="Unexpected error. Check the "qbsdklog.txt" file for possible additional information.">
20190228.04:24:14 UTC : QBWebConnector.SOAPWebService.do_connectionError() : Received from connectionError() following parameters:<tryAgain="">
20190228.04:24:14 UTC : QBWebConnector.SOAPWebService.OpenConnection() : Connection retry #1
20190228.04:24:14 UTC : QBWebConnector.SOAPWebService.OpenConnection() : Received another company file from application to try again. Company file name received = <"">
20190228.04:24:14 UTC : QBWebConnector.SOAPWebService.OpenConnection() : Connecting to QuickBooks...
20190228.04:24:15 UTC : QBWebConnector.SOAPWebService.handleAllOtherError() : QBWC1013: Error connecting to QuickBooks. Returning error message to application.
Could not start QuickBooks.
20190228.04:24:15 UTC : QBWebConnector.SOAPWebService.do_connectionError() : *** Calling connectionError() with following parameters:<wcTicket="7bc6c7bb-bbb9-461f-9eae-2e45284704d8"><hresult="0x80040408"><message="Could not start QuickBooks.">
20190228.04:24:15 UTC : QBWebConnector.SOAPWebService.do_connectionError() : Received from connectionError() following parameters:<tryAgain="DONE">
20190228.04:24:15 UTC : QBWebConnector.SOAPWebService.OpenConnection() : Error connecting to QuickBooks. Application sent back DONE. Job ending.
20190228.04:24:15 UTC : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False
20190228.04:24:15 UTC : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked *********************
20190228.04:24:15 UTC : QBWebConnector.WebServiceManager.DoUpdateSelected() : Update completed with errors. See log (QWClog.txt) for details.
And here is the log from qbsdklog.txt
20190228.042800 I 6956 RequestProcessor ========= Started Connection =========
20190228.042800 I 6956 RequestProcessor Request Processor, QBXMLRP2 v13.0
20190228.042800 I 6956 RequestProcessor Connection opened by app named 'Atria By FES - Future Energy Solutions Contracts No.1, LLLP - Customer'
20190228.042800 I 6956 CertVerifier The Authenticode signature validated OK.
20190228.042800 I 6956 RequestProcessor OS: Microsoft Standard Edition (build 9200), 64-bit
20190228.042800 I 6956 RequestProcessor Current Process Integrity Level : 2000
20190228.042803 I 6956 RequestProcessor Quickbooks is not running currently
20190228.042803 I 6956 RequestProcessor Launch a new instance of Quickbooks
20190228.042805 I 6956 RequestProcessor Getting the IUnknown COM instance of QB
20190228.042805 I 6956 RequestProcessor Opening the file in the DoNotCare mode.
20190228.042807 E 6956 RequestProcessor Begin Session error = 800706be
20190228.042808 I 6956 RequestProcessor ========= Started Connection =========
20190228.042808 I 6956 RequestProcessor Request Processor, QBXMLRP2 v13.0
20190228.042808 I 6956 RequestProcessor Connection opened by app named 'Atria By FES - Future Energy Solutions Contracts No.1, LLLP - Customer'
20190228.042808 I 6956 CertVerifier The Authenticode signature validated OK.
20190228.042808 I 6956 RequestProcessor OS: Microsoft Standard Edition (build 9200), 64-bit
20190228.042808 I 6956 RequestProcessor Current Process Integrity Level : 2000
20190228.042808 E 6956 RequestProcessor QuickBooks is not running and the data file name is not provided. Cannot continue.
20190228.042808 E 6956 RequestProcessor Could not find or create an instance of QuickBooks using InstanceFinder hr = 80040416
20190228.042829 I 6956 RequestProcessor "CloseConnection" has not been called.
20190228.042853 I 6956 RequestProcessor "CloseConnection" has not been called.
Please help!
FYI: It was working earlier, but it suddenly stopped working.
In Log its show "Could not find or create an instance of QuickBooks".
Here are things to look at if you are getting a "Could not start QuickBooks" error message.
Make sure your app is built for Target x86 only.
Make sure the Keep QuickBooks running is Un-checked in the General
Preferences.
Make sure QuickBooks and your application are running at the same
user level.
They both need to be running as a normal user or both running as
administrator, but not mixed.
If you are running in Visual Studio and trying to debug, you are
probably running in a mixed permission mode. VS runs as
administrator, so you will need to start QuickBooks using the Run As
Administrator option.
Make sure the Path and Filename are correct.
QuickBooks and QBXML SDK applications are NOT designed to run as a
service. They have to run in the context of a user.
reference:
https://help.developer.intuit.com/s/article/Troubleshooting-Could-not-start-QuickBooks
Could not find or create an instance of QuickBooks using InstanceFinder
I am developing an iOS application to use Amazon cloud services(S3 service).
Since i need to authenticate the user, deployed TokenVendingMachine in AWS Elastic BeanStalk as per the steps provided in the Token Vending Machine for Identity Registration - Sample Java Web Application
But when iam trying to login through TVM, getting an error "signature doesn't matching".
Please see the log from BeanStalk section.
an 29, 2014 6:15:38 AM com.amazonaws.tvm.Utilities getEndPoint
INFO: Endpoint : <endpoint url>
Jan 29, 2014 6:15:38 AM com.amazonaws.tvm.identity.LoginServlet processRequest
INFO: username : <username>
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.LoginServlet processRequest
INFO: timestamp : 2014-01-29T06%3A15%3A38Z
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.LoginServlet processRequest
INFO: uid : 38abccd49ff9f8ffe6c84c466f83ecae
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.LoginServlet processRequest
INFO: endpoint : synopsislibrary.elasticbeanstalk.com
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.IdentityTokenVendingMachine validateLoginRequest
FINE: Timestamp [ 2014-01-29T06:15:38Z ] is valid
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.Utilities sign
SEVERE: Exception during sign
java.lang.NullPointerException
at com.amazonaws.tvm.Utilities.sign(Utilities.java:73)
at com.amazonaws.tvm.custom.UserAuthentication.authenticateUserSignature(UserAuthentication.java:178)
at com.amazonaws.tvm.identity.IdentityTokenVendingMachine.validateLoginRequest(IdentityTokenVendingMachine.java:174)
at com.amazonaws.tvm.identity.LoginServlet.processRequest(LoginServlet.java:51)
at com.amazonaws.tvm.RootServlet.doGet(RootServlet.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.IdentityTokenVendingMachine validateLoginRequest
WARNING: Client signature : e57edd8acbcbbfde0809575acbb5b644ee3713c861276937e35aeee2629129e3 doesnot match with server generated signature .Setting Http status code 401
I need clarification on few things
Do we need to make any modification on the WAR file associated with IdentityTVM template application? (Assuming, need modification in TokenVendingMachinePolicy.json file, please advice?)
Is there any relation between IAM user policy and TVM policy, should we give special attention to these sections while creating TVM in elastic beanstalk?
Please help.
Thanks in advance.
There are a couple of places you can look at:
when you create a new account, avoid using special characters like #, ?, etc. The sample code doesn't sanitize user name, and may have an issue dealing with special characters.
make sure you entered the same user name/password combination as one that you created.
this blog post simplifies TVM deployment process. It's worth a try.
I am trying to connect quickbooks web connector with my php website. I have successfully integrated QWC file with it.
Here is the QWC file:
<QBWCXML>
<AppName>QuickBooks Integrator</AppName>
<AppID></AppID>
<AppURL>https://domain.com/quick1/docs/example_web_connector.php</AppURL>
<AppDescription>Test desktop quickbook</AppDescription>
<AppSupport>http://domain.com/file.html</AppSupport>
<UserName>mudit</UserName>
<OwnerID>{90A44FB7-33D9-4815-AC85-AC86A7E7D1EB}</OwnerID>
<FileID>{57F3B9B6-86F1-4FCC-B1FF-967DE1813D20}</FileID>
<QBType>QBFS</QBType>
<Scheduler>
<RunEveryNMinutes>2</RunEveryNMinutes>
</Scheduler>
<IsReadOnly>false</IsReadOnly>
</QBWCXML>
When I run this from web connector I get error Last result: authentication failed.
Below is a small snippet of error log:
For backward compatibility of all webservers, QBWC will catch all errors under app-not-supporting-serverVersion.
20130628.20:14:55 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : This application does not contain support for serverVersion. Allowing update operation for backward compatibility.
20130628.20:14:55 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : *** Calling clientVersion() with following parameter:<productVersion="2.0.0.139">
20130628.20:14:56 UTC : QBWebConnector.SOAPWebService.updateWS() : Actual error received from web service for clientVersion call: <The request failed with the error message:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
The logs are indicating that your AppURL is incorrect:
20130628.20:14:56 UTC : QBWebConnector.SOAPWebService.updateWS() : Actual error received from web service for clientVersion call: <The request failed with the error message:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
The Web Connector is hitting your server, and your server is returning a "301 Moved Permanently" response instead of a "200 OK" response like it should be.
Are you 100% positive that your AppURL is correct?
Can you actually post your AppURL, so that we can verify that it's correct?
OK, I hate to reopen a previously solved case, but I can't get it to work. I have two endpoints listening to events from TFS 2010 event service, one build with Web Service (ASMX) and one with WCF (SVC). The first one works fine. The second causes TFS to raise this error
HistoryId : 4643911
EndTime : 4/12/2013 11:40:31 AM
ResultMessage : There were errors or warnings during notification delivery.
0/0 emails delivered.
1/2 soap notifications delivered.
1 errors.
0 warnings.
-------------------------------
Notification not delivered.
Notification: WorkItemChangedEvent (DeliveryType: Soap; Address: http://[removed]/[removed]/Services/TfsListener.svc)
Exception: Microsoft.TeamFoundation.TeamFoundationServiceUnavailableException: Team Foundation services are not available from server
http://[removed]/[removed]/Services/TfsListener.svc.
Technical information (for administrator):
HTTP code 404: Not Found ---> System.Net.WebException: The remote server returned an error: (404) Not Found.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.AsyncWebRequest.ExecRequest(Object obj)
--- End of inner exception stack trace ---
at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ProcessHttpResponse(HttpWebResponse response, Stream responseStream, WebException webException,
XmlReader& xmlResponseReader)
at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ExecWebServiceRequest(HttpWebRequest request, XmlWriter requestXml, String methodName,
HttpWebResponse& response)
at Microsoft.TeamFoundation.JobService.Extensions.Core.TeamFoundationNotificationClient.Notify(String eventXml, String tfsIdentityXml, Subscription subscription)
at Microsoft.TeamFoundation.JobService.Extensions.Core.NotificationJobExtension.SendSoapNotification(TeamFoundationRequestContext requestContext,
TeamFoundationNotification notification, TeamFoundationIdentityService identityService)
JobSource : d9ee5b23-4aa4-4768-a7fb-4db33ab686d0
JobId : a4804dcf-4bb6-4109-b61c-e59c2e8a9ff7
QueueTime : 4/12/2013 11:40:29 AM
ExecutionStartTime : 4/12/2013 11:40:30 AM
AgentId : 917eb9ee-2622-455c-a6e6-a1c96eeb1666
Result : PartiallySucceeded
I have followed every advice I could find, including, 404 Error when TFS 2010 Sends SOAP Alert to a WCF 4.0 Service and http://www.ewaldhofman.nl/post/2010/08/02/How-to-use-WCF-to-subscribe-to-the-TFS-2010-Event-Service-rolling-up-hours.aspx.
Any other ideas?
OK, got it work. Here is what is missing from some of the websites out there:
<service behaviorConfiguration="EventServiceBehavior" name="FullSvcClassName">
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="EventServiceBinding"
contract="FullSvcInterfaceName" />
</service>
If name of the service will not match your full class name (including namespace), you will get a basicHttpBinding and it will not work.
If you put anything in the endpoint address, like a relative address I thought I should provide, it will get appended to the and of the URI and fail.
I used WcfTestClient.exe and Fiddler2 to track it down. Enjoy!