Web サービスを使用しようとしていますが、明らかにすべてのパラメーターは問題ないように見えますが、期待していたバイトの配列ではなく、応答としてエラー ページを取得し続けています。
My objective is to Seal a file in order to make them only readable for the right people. I am using the IRM Oracle Web Services to acomplish that, but, though all my parameters semm alright, I can't get the reponse properly.
Acording to the Oraclel support, my request is fine, so it must be something on IIS I guess. Any help?
例外メッセージ:
応答のコンテンツ タイプ multipart/related;start="";type="application/xop+xml";boundary="uuid:ab73a894-eaf4-4293-aa4e-c3358b95ec73";start-info="text/xml"メッセージがバインディングのコンテンツ タイプ (text/xml; charset=utf-8) と一致しません。カスタム エンコーダーを使用する場合は、IsContentTypeSupported メソッドが適切に実装されていることを確認してください。応答の最初の 748 バイトは次のとおりです: '--uuid:ab73a894-eaf4-4293-aa4e-c3358b95ec73 Content-Transfer-Encoding: バイナリ '.
例外スタックトレース:
サーバー スタック トレース: System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest 要求、HttpWebResponse 応答、HttpChannelFactory ファクトリ、WebException responseException、ChannelBinding channelBinding) で System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan タイムアウト) で.ServiceModel.Channels.RequestChannel.Request(メッセージ メッセージ、TimeSpan タイムアウト) System.ServiceModel.Dispatcher.RequestChannelBinder.Request(メッセージ メッセージ、TimeSpan タイムアウト) で System.ServiceModel.Channels.ServiceChannel.Call(String アクション、Boolean oneway、ProxyOperationRuntime) System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall、ProxyOperationRuntime 操作) での操作、Object[] ins、Object[] outs、TimeSpan タイムアウト)。ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage メッセージ) [0] で再スローされた例外: System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) で System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke( MessageData& msgData, Int32 type) at HTMLToPDFComponenteConverter.sealing_services.SealingServices.Seal(SealRequest request) at HTMLToPDFComponenteConverter.sealing_services.SealingServicesClient.HTMLToPDFComponenteConverter.sealing_services.SealingServices.Seal(SealRequest request) at HTMLToPDFComponenteConverter.sealing_services.SealingServicesClient.Seal(Byte[] stream, HTMLToPDFComponenteConverter.ConvertToPDF.Page_Load(オブジェクト送信者、EventArgs e) の文字列 mimeType、SealingOptions オプション)Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) で System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 タイプ) HTMLToPDFComponenteConverter.sealing_services.SealingServices.Seal(SealRequest リクエスト) で HTMLToPDFComponenteConverter.sealing_services. SealingServicesClient.HTMLToPDFComponenteConverter.sealing_services.SealingServices.Seal(SealRequest リクエスト) で HTMLToPDFComponenteConverter.sealing_services.SealingServicesClient.Seal(Byte[] ストリーム、文字列 mimeType、SealingOptions オプション) で HTMLToPDFComponenteConverter.ConvertToPDF.Page_LoadObject(送信者、EventArgs e)Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) で System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 タイプ) HTMLToPDFComponenteConverter.sealing_services.SealingServices.Seal(SealRequest リクエスト) で HTMLToPDFComponenteConverter.sealing_services. SealingServicesClient.HTMLToPDFComponenteConverter.sealing_services.SealingServices.Seal(SealRequest リクエスト) で HTMLToPDFComponenteConverter.sealing_services.SealingServicesClient.Seal(Byte[] ストリーム、文字列 mimeType、SealingOptions オプション) で HTMLToPDFComponenteConverter.ConvertToPDF.Page_LoadObject(送信者、EventArgs e)Sealing_services.SealingServices.Seal(SealRequest リクエスト) で HTMLToPDFComponenteConverter.sealing_services.SealingServicesClient.HTMLToPDFComponenteConverter.sealing_services.SealingServices.Seal(SealRequest リクエスト) で HTMLToPDFComponenteConverter.sealing_services.SealingServicesClient.Seal(Byte[] ストリーム、文字列 mimeType、SealingOptions オプション) で HTMLToPDFComponenteConverter. ConvertToPDF.Page_Load(オブジェクト送信者, EventArgs e)Sealing_services.SealingServices.Seal(SealRequest リクエスト) で HTMLToPDFComponenteConverter.sealing_services.SealingServicesClient.HTMLToPDFComponenteConverter.sealing_services.SealingServices.Seal(SealRequest リクエスト) で HTMLToPDFComponenteConverter.sealing_services.SealingServicesClient.Seal(Byte[] ストリーム、文字列 mimeType、SealingOptions オプション) で HTMLToPDFComponenteConverter. ConvertToPDF.Page_Load(オブジェクト送信者, EventArgs e)
例外データ:
System.Collections.ListDictionaryInternal
例外ソース:
mscorlib
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/vnd.sealedmedia.softseal.pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=Relatorio.spdf");
SealingServicesClient sealingServicesClient =
new SealingServicesClient("SealingServices");
sealingServicesClient.ClientCredentials.UserName.UserName =
ConfigurationManager.AppSettings["Irm-user"];
sealingServicesClient.ClientCredentials.UserName.Password =
ConfigurationManager.AppSettings["Irm-password"];
// Create the classification details used in the sealing options
SealingOptions sealingOptions = new SealingOptions();
// This just set several parameters which the WebService validates. (They're all okay)
sealingOptions.classification = GetClassificationSetUp();
String mimeType = "application/pdf";
// Here is where everything goes wrong. I keep getting an error message.
byte[] sealedFile = sealingServicesClient.Seal(file, mimeType, sealingOptions);
if (sealedFile != null && sealedFile.Length > 0)
{
Response.AddHeader("Content-Length", sealedFile.Length.ToString());
Response.BinaryWrite(sealedFile);
Response.Flush();
Response.End();
}
Meu WebConfig está desse jeito:
<system.serviceModel>
<client>
<endpoint address="https://url:porta/irm_sealing/sealing_services"
binding="basicHttpBinding" bindingConfiguration="SealingServicesBinding"
contract="sealing_services.SealingServices" name="SealingServices"
behaviorConfiguration="IrmSealingAbril">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="IrmSealingAbril">
<clientCredentials>
<clientCertificate storeLocation="LocalMachine"
storeName="Root"
x509FindType="FindByThumbprint"
findValue="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX">
</clientCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="SealingServicesBinding" closeTimeout="00:05:00"
openTimeout="00:05:00" receiveTimeout="00:10:00" sendTimeout="00:05:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2097152" maxBufferPoolSize="524288" maxReceivedMessageSize="2097152"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="Basic" realm="weblogic" />
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
どこが間違っていますか?
追加情報: オラクルのサポートによって確認されたように、リクエストは明らかに正しいものです。しかし、私は戻ってくる応答を得ることができません。IIS に関連するものかもしれないと思ったのですが、構成するスキルがあまりありません。
前もって感謝します。