.NET Webサービスは、コード化されたHTML文字列をパラメータとして受け取り、文字列をデコードし、HTMLからPDFを作成します。私は、古典的なaspのWebページからwebserviceへの同期サーバー側の呼び出しを行いたい。プレーンテキスト文字列(htmlタグなし)を使用するとうまくいきますが、エンコードされたhtml文字列を送信すると、webserviceに達すると文字列が空であるように見えます。古典ASPのWebserviceへのサーバーサイドコール
プレーンテキスト文字列とエンコードされたhtml文字列の両方を使用して、クライアント側からwebserviceを呼び出すとうまく動作しています。
私のコードは次のようになります。
Private Sub SaveBookHtmlToPdf(pHtml, pShopId)
Set oXMLHTTP = CreateObject("Msxml2.ServerXMLHTTP.6.0")
Dim strEnvelope
strEnvelope = "pShopId=" & pShopId & "&pEncodedHtml=" & Server.HTMLEncode(pHtml)
Call oXMLHTTP.Open("POST", "https://mydomain.dk:4430/PdfWebservice.asmx/SaveBookToPdf", false)
Call oXMLHTTP.SetRequestHeader("Content-Type","application/x-www-form-urlencoded")
Call oXMLHTTP.Send(strEnvelope)
Set oXMLHTTP = Nothing
End Sub
それは、サーバー上のセキュリティ問題のいくつかの種類のようなにおいがします。クライアント側から非同期呼び出しをポストするときには動作しますが、サーバ側からは来ません。エンコードされたHTML文字列は、Webサービスへのサーバー側の呼び出しでは何らかの形で許可されていないようです。
このトリッキーな問題を解決する方法を知っている人は誰ですか?
[フィドラー](http://www.fiddler2.com/fiddler2/)を使用して、実際に何を送信しているのか、そしてウェブサービスメッセージは何ですか? – balexandre
Webサービスへの呼び出しはサーバー側で行われるため、残念ながら私はFiddlerを使用できません。私は、Webサービスに送信されたデータを画面に印刷しようとしましたが、それはすべきですが、何らかの形で、エンコードされたHTML文字列のパラメータが空であるように見えます。 –
@ Stuffen:どのバージョンのIISを使用していますか? Fiddlerをインストールできるテストサーバーまたは開発マシンがありますか? – AnthonyWJones