Tôi đang chuyển đổi một chương trình Delphi 2007 đến Delphi XE2 và gặp vấn đề với các thông báo lỗi sau:Delphi XE2 HTTPRIO Không thể truy xuất thiết bị đầu cuối URL cho dịch vụ/Cảng
Không thể truy xuất thiết bị đầu cuối URL cho dịch vụ/cổng "/" từ WSDL 'http: // .....'
Các dịch vụ tôi đang kết nối với được viết bằng Delphi 2007.
vào năm 2007, biên dịch và chạy không có vấn đề. Trên XE2 với cùng một mã nó rơi với lỗi.
Tôi đã thử nhập lại giao diện bằng cách sử dụng trình nhập WSDL mới có cài đặt mặc định nhưng không có niềm vui.
Tôi cũng đã thử đặt tên cổng và dịch vụ và lỗi vẫn tồn tại. Không chắc chắn thông tin nào được sử dụng nhưng theo như tôi có thể nói nó đang kết nối.
Đây là hoạt động của phương pháp mà tôi đang sử dụng
<operation name="CheckRegistration">
<soap:operation soapAction="urn:ScubaUpdateWSIntf-IScubaUpdateWS#CheckRegistration" style="rpc"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</output>
</operation>
Đây là thông điệp:
<message name="CheckRegistration10Request">
<part name="centreId" type="xs:int"/>
<part name="centreName" type="xs:string"/>
<part name="checkActiveOnly" type="xs:boolean"/>
</message>
<message name="CheckRegistration10Response">
<part name="return" type="xs:boolean"/>
</message>
Ngoài nhập khẩu các WSDL, ném vào một HTTPRIO và gọi phương thức với
(HTTPRIO1 as IScubaUpdateWS).CheckRegistration(strtoint(tcentre),tcentreName,true);
Tôi không nghĩ mình đang làm bất kỳ điều gì khác và khi tôi nói cùng một mã hoạt động trên Delph i 2007.
Tại thiết kế thời gian, khi bạn thiết lập thuộc tính HTTPRIO.WSDLLocation, bạn có thể chọn thuộc tính HTTPRIO.Service và HTTPRIO.Port không? Bạn có thể đặt Dịch vụ và Cổng tại thời điểm thiết kế, nếu không, thì có thể có sự cố với URL. Tôi đã có vấn đề này nhiều lần, và nó có vẻ như ngay sau khi tôi đặt nó một lần đúng lúc thiết kế thời gian, sau đó các lỗi biến mất .. –
Hi John, Cảm ơn, cổng là trống trong id Delphi 2007 cũng như trong Xe2. Đặt nó chỉ thay đổi thông báo lỗi. Tôi vừa cố gắng kết nối với một WSDL delphi khác và có cùng một vấn đề. Tôi sẽ cố gắng để kết nối với một C# WSDL hoặc một trong những DLL của Amazon để xem nếu tôi có thể xác định liệu wsdls chỉ delphi của nó đang gây ra vấn đề. Tôi sẽ đăng lại sau ngày hôm nay. –
Chỉ cần xác nhận rằng Xe2 có thể kết nối với dịch vụ web .net. Phải có một cái gì đó trong các dịch vụ web delphi của tôi gây ra lỗi điểm cuối. –