開放空閒和進口皁液客戶多泡客戶,我可以通過創建一個客戶端:創建指向同一個WSDL
c = Client('http://blah/Core.svc?wsdl')
隨後致電:
c2 = Client('http://blah/Core.svc?wsdl')
會得到我TypeNotFound
錯誤被拋出,在wsdl文件中命名一個類。
我曾嘗試:
timeout = 5 # and then waiting
cache = None
但發生同樣的錯誤。我不介意如果我不能使用第一個實例,但我如何獲得第二個實例?
我寫的測試,這將是PySys的單個實例中運行,但個別不共享數據。
順便說一句,當我退出後,這個()IDLE,它問我要殺死正在運行的進程,所以我是糾正假設創建客戶機打完一個線程?
我得到的錯誤是:
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
c1 = Client('http://localhost:8090/Service/Core.svc?wsdl')
File "build\bdist.win-amd64\egg\suds\client.py", line 119, in __init__
sd = ServiceDefinition(self.wsdl, s)
File "build\bdist.win-amd64\egg\suds\servicedefinition.py", line 58, in __init__
self.paramtypes()
File "build\bdist.win-amd64\egg\suds\servicedefinition.py", line 137, in paramtypes
item = (pd[1], pd[1].resolve())
File "build\bdist.win-amd64\egg\suds\xsd\sxbasic.py", line 63, in resolve
raise TypeNotFound(qref)
TypeNotFound: Type not found: '(ClassName, http://schemas.datacontract.org/4004/07/Class.Namespace,)'
c.last_received()和c.last_sent()都是空的。
進一步說,我看了看日誌我的IIS,發現,每當我打電話,第一次客戶端(URL)在Python情況下,我得到:從內部
GET /Service/Core.svc wsdl 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd0 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd2 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd1 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd3 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd2 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd1 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd3 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd2 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd1 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd3 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd2 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd3 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd1 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd2 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd3 8090 - ::1 Python-urllib/2.6
但後續調用相同的python實例給我:
GET /Service/Core.svc wsdl 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd0 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd2 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd3 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd1 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd2 8090 - ::1 Python-urllib/2.6
GET /Service/Core.svc xsd=xsd3 8090 - ::1 Python-urllib/2.6
每次請求某個文件時,響應的大小是相同的。
此錯誤肯定意味着您的服務的第二次調用不會返回相同的wsdl。 –
如果我得到一個客戶端,重新啓動IDLE shell並再次獲取客戶端,一切都很好。這個問題只發生在同一個shell中兩次調用時。 – Peter