2

Clickonceを使用してWCFアプリケーションを展開しました。httpsを使用してサーバーに接続し、すべてが正常に機能します

次のコードのおかげで、必要に応じてデフォルトのプロキシを使用します。

  <configSections>
    <sectionGroup name="system.net" type="System.Net.Configuration.NetSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    </sectionGroup>
  </configSections>
  <system.net>
    <defaultProxy useDefaultCredentials="true"/>
  </system.net>

フルトラストモードでは、すべてが正常に機能します

これで、セキュリティ設定を部分信頼に設定した場合、プロキシが含まれていなくても正常に機能しますが、企業環境でソフトウェアを起動しようとすると、プロキシは自動検出されなくなります。

私の理解から:

次のようにrequirePermission属性が設定されていない限り、configSectionsは部分信頼環境では解析されなくなります。

<section requirePermission="false" name="defaultProxy">

この属性を設定すると、System.Configuration.ConfigurationExceptionがスローされ、次のエラーメッセージが表示されます。

セクションまたはグループ名'defaultProxy'はすでに定義されています。これに対する更新は、それが定義されている構成レベルでのみ発生する可能性があります。

'defaultproxy'セクションは、実際にはmachine.configファイルですでに定義されています。

   <section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

ただし、requirePermissionが設定されていない限り、これは問題にはならないようです。言い換えれば、エラーメッセージはむしろ読むべきであるようです:

セクションまたはグループ名'defaultProxy' は、別のrequirePermission設定ですでに定義されています。これに対する更新は、それが定義されている構成レベルでのみ発生する可能性があります。


誰かが同じ問題に遭遇しましたか?部分信頼モードでWCFアプリケーションの既定のプロキシをサイレントに使用することは可能ですか?プログラムでプロキシを設定しようとしましたが、成功しませんでした

System.Net.WebProxy proxy = new WebProxy();
proxy.UseDefaultCredentials = true;
WebRequest.DefaultWebProxy = proxy;

wshttpbindingのuseDefaultWebProxy属性は最初から直接設定されますが、「system.net.defaultProxy」セクションが正しく定義されていないと、部分的または完全な信頼環境では機能しないようです。

   <binding name="WebBinding" useDefaultWebProxy="true">

クライアントにローカルのmachine.configファイルを更新して、必要なdefaultProxy useDefaultCredentials = "true"を追加するように依頼することはできると思いますが、展開が容易になるわけではありません。

4

2 に答える 2

1

これは既知の問題であり、おそらく秘密鍵の転送に関連していると思います。ここに MS Connect エントリがあります。

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=354646

問題を正しく理解したことを願っています。問題がこのバグの結果である場合、修正の ETA はまだないようです。ただし、資格情報を手動で要求することに関連する回避策がある場合があります。明らかにこれは理想的ではありませんが、実稼働システムに展開する前に別のオプションが得られる場合があります。

ここの MSDN フォーラムで追加の議論があります。

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c19b726b-573b-4157-91fd-051724f04180/

于 2009-03-06T07:59:36.980 に答える