ResponseSoapContext.Currentはnullです
-
27-09-2019 - |
質問
私は、クライアントコードと一緒に自分のマシン上のWebサービスのコードを実行されています。これは、罰金を実行し、クライアントにWebサービスから送信されたダイムの添付ファイルを受信するために管理されていました。
は、Webサービスは、WSE 2.0とダイムの添付ファイルを使用しています。クライアントコードは、Webサービスを呼び出し、同じマシン上にあります。
私は、Windows 2003 R2サーバー上でこれを展開する行くときしかし、ResponseSoapContext.Current.add(dimeAttachment)ラインではResponseSoapContext.Currentオブジェクトがnullであることに起因する失敗します。
クライアントコードは、私は何かをしようとしているログに見ることができるようにWebサービスを呼び出すことに成功しました。
ですが、Webサービスからのダイムの添付ファイルを受信するクライアントコードを停止するファイアウォールのこと?それとも私が行方不明です設定はありますか?ここでは、コードは次のとおりです。
DimeAttachment dimeAttach = new DimeAttachment(
"application/octet-stream", TypeFormat.MediaType,
streamObj);
if (ResponseSoapContext.Current != null)
{
ResponseSoapContext.Current.Attachments.Add(dimeAttach);
}
else
{
throw new Exception("The ResponseSoapContext.Current object is null");
}
解決
これは、サーバがクライアントにMicrosoft WSE 2.0 SP3を使用していたとしてMicrosoft WSE 2.0 SP2がインストールされていた場所が判明します。
サーバー上のMicrosoft WSE 2.0 SP3をインストールし、参照を更新し、それはすべてが機能するようになりました。
他のヒント
私はこの問題を抱えていたと私はWSEに関するいくつかの設定を追加することによって、私のサーバーのweb.configファイルから、それを解決しました。私のweb.configファイル(剥奪設定WSEとは関係ありません):
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="microsoft.web.services2" type="Microsoft.Web.Services2.Configuration.WebServicesConfiguration, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<system.web>
<webServices>
<soapExtensionTypes>
<add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0" />
</soapExtensionTypes>
</webServices>
</system.web>
<microsoft.web.services2>
<messaging>
<maxRequestLength>1024000</maxRequestLength>
</messaging>
<diagnostics />
</microsoft.web.services2>
</configuration>
所属していません StackOverflow