2017-11-04 21 views
0

IISでホストされているデフォルトの.aspxファイルを持つWCFサービスが、Clickonceアプリケーションのランディングページとして機能します。 .SVCファイルと.aspxのファイルは、アプリケーションの同じルートディレクトリにある以下のフォルダ構造すなわち:クリック一度のランディングページのクライアント証明書ポップアップを無視しますが、依然としてサービスの証明書が必要です

MyService 
-- MyService.svc 
-- Default.aspx 
-- Web.config 

私はMyServiceでを参照し、IISから(私のクリックは一度ページを着陸)はDefault.aspxを表示すると、 I クライアント証明書がクリックされてから実際に選択され、WCFサービスの呼び出しに添付されているため(つまり、client.ClientCredentials.ClientCertificate.Certificate = UserCertificate;)、クライアント証明書の入力が求められます。私はにMyServiceでアプリケーションを設定することにより、IISマネージャでこの問題を回避することができます

クライアント本命を無視し、クライアント本命を受け入れにMyService.svcを設定します。これはすべて正常に動作します(Default.aspxへの参照は私には表示されませんが、.svcへの参照はありません)。しかし、デプロイの理由では&のテストのために、私はWeb.configでこれを自動化したいと思います。私は以下を試したが運がない。

<location path="MyService"> 
<system.webServer> 
    <security> 
    <access sslFlags="None" /> 
    </security> 
</system.webServer> 

<location path="MyService.svc"> 
<system.webServer> 
    <security> 
    <access sslFlags="SslRequireCert" /> 
    </security> 
</system.webServer> 

私が最初にそれを台無しに"None"にMyServiceでを設定することにより、想定しています。

また、私のsvcを別のフォルダに移動してIISのサブアプリケーションとして使用しようとすると、同様の問題が発生しました。

ご協力いただきありがとうございます。

+0

の線に沿って何かを使用してApplicationHost.configにXML設定を書いた私の高度なインストーラプロジェクトにカスタムアクションを追加することによって、この問題を修正することになりましたファイルエクスプローラでパスを開き、web.configをチェックしてください。あなたのすべての変更が反映されます。そのセクションをコピーしてテストシナリオに貼り付けることができるはずです。web.config –

+0

@MuqeetKhanこれは動作しません。 WindowsエクスプローラでWeb.configに移動するときにweb.configの変更が表示されない – DylSmith

答えて

0

私はあなたにIISマネージャで変更を行った後

using (ServerManager manager = new ServerManager()) 
     { 
      var config = manager.GetApplicationHostConfiguration(); 

      try 
      { 
       ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", site); 

       if (accessSection != null) 
       { 
        Console.WriteLine("Opened app host config successfully."); 
        accessSection["sslFlags"] = @"None"; 
       } 

       accessSection = config.GetSection("system.webServer/security/access", "Default Web Site/MyService/MyService.svc"); 

       if (accessSection != null) 
       { 
        Console.WriteLine("Opened app host config successfully."); 
        accessSection["sslFlags"] = @"Ssl, SslNegotiateCert, SslRequireCert"; 
       } 

       manager.CommitChanges(); 
       Console.WriteLine("Successfully committed changes"); 
       Console.ReadLine(); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Failed to open the app host config."); 
      } 
     } 
関連する問題