私は、既存の古典的なASPプログラムがasp.net Webサービスを使用するためのコードを作成しようとしています。私は大企業で働いているので、古典的なASPからのアップデートはオプションではありません。古典的なASP Webサービスの問題
私はチュートリアルの塊をブラウズしていると思われますが、これを手伝ってもらえませんでした。初心者としては、私はいくつかの本当の明白な間違いをしたかもしれないが、私はちょうど何がわからない。
まず、Webサービスは外部サーバーにあります。メソッド "Greeting"には、どのStringを返すかを決定するStringパラメータが必要です。それに対して "G" を入力すると、このXMLをprocudes:
<?xml version="1.0" encoding="utf-8" ?> <string xmlns="http://server1/Logger_WebService/">Greetings and welcome!</string>
私は内容を取得するためのXPathは、 "文字列/ *" または "*" のいずれかであると仮定しますか?
次に、自分のWebサービス自体は、次のようになります
<WebMethod()> _ Public Function Greeting(ByVal stringel As String) As String If stringel.ToLower = "g" Then Return "Greetings and welcome!" Else Return "Bye then!" End If End Function
Webサービスは、通常のasp.net溶液から正常に動作します。
これは問題です。古典的なaspコードはこのように見えます(SOAPツールキットはWebサービスサーバーにインストールされていますが、チュートリアルからすべての例が取られ、変更されています):
'******* USING GET METHOD Dim wsurl="http://server1/Logger_WebService/service.asmx/Greeting?g" Dim xmlhttp Set xmlhttp=Server.CreateObject("MSXML2.ServerXMLHTTP") xmlhttp.open "GET",wsurl,false xmlhttp.send Dim rValue 'rValue=xmlhttp.responseXML.selectSingleNode("string") 'use XPATH as input argument ' or you can get response XML rValue=xmlhttp.responseXML Set xmlhttp=nothing '------------------------------------------------------ '******* USING POST METHOD Dim wsurl="http://server1/Logger_WebService/service.asmx/Greeting" Dim xmlhttp Set xmlhttp=Server.CreateObject("MSXML2.ServerXMLHTTP") xmlhttp.open "POST",wsurl,false xmlhttp.send "stringeli=g" Dim rValue rValue=xmlhttp.responseXML.selectSingleNode("string") ' or you can get response XML ' rValue=xmlhttp.responseXML Set xmlhttp=nothing '------------------------------------------------------ Response.Write consumeWebService() Function consumeWebService() Dim webServiceUrl, httpReq, node, myXmlDoc webServiceUrl = "http://server1/Logger_WebService/service.asmx/Greeting?stringel=g" Set httpReq = Server.CreateObject("MSXML2.ServerXMLHTTP") httpReq.Open "GET", webServiceUrl, False httpReq.Send Set myXmlDoc =Server.CreateObject("MSXML.DOMDocument") myXmlDoc.load(httpReq.responseBody) Set httpReq = Nothing Set node = myXmlDoc.documentElement.selectSingleNode("string/*") consumeWebService = " " & node.text End Function '------------------------------------------------------ Response.Write(Helou()) Public Function Helou() SET objSoapClient = Server.CreateObject("MSSOAP.SoapClient") objSoapClient.ClientProperty("ServerHTTPRequest") = True ' needs to be updated with the url of your Web Service WSDL and is ' followed by the Web Service name Call objSoapClient.mssoapinit("http://server1/Logger_WebService/service.asmx?WSDL", "Service") ' use the SOAP object to call the Web Method Required Helou = objSoapClient.Greeting("g") End Function
私は真剣に何が機能しない理由はわかりません、私は一つの可能性のある問題は、Webサービスは、ASP.Netで私を必要なサーバ上に配置されていることであるなど、さまざまな設定の負荷で彼らにすべてのどの方法を試してみましたこの "[ServiceVariableName] .Credentials = System.Net.CredentialCache.DefaultCredentials"を入力します。私は会社のネットワーク内からこれを行い、いくつかのセキュリティと認証の問題があります。
私が使用する実際の方法は、情報をデータベースに挿入するため、受信するのではなく、情報を送信する必要があります。しかし、今のところ、Hello Worldの恋人を働かせているだけでは、十分な挑戦を提供するようです。 :)
すべてのヘルプ。私は祝日をチェックしてコメントに返信することを試みるつもりですが、私は間違いなく必要な情報を残しました。
あなたがばかにするように話してください、私はこれには新しいので、チャンスは私がそのように良く理解できることです。 :)
修正プログラムはあなたの回答に隠されています:MSXML2.ServerXMLHTTPをMSXML2.XMLHTTPに変更すると、自動的に認証が機能します。 – user3902302