39

Visual Studio で、Solution->Web.Project->Properties->Web で、プロジェクトの URL を から に変更しまし http://localhost:51123/たが、次のhttp://localhost:51123/NewProjectNameエラーが発生し続けます。

"追加されたすべてのモジュールで、一意のキー属性 'name' が .... に設定されたタイプ 'add' の重複するコレクション エントリを追加できません。

削除タグの追加は機能しますが、URL を変更する前でも問題があったはずです。助言がありますか?

4

14 に答える 14

60

<application>IIS Express にはおそらく 2 つのブロックがあり、両方が同じ physicalPath を指していると思います。

次の場所にある IIS Express 構成ファイルに移動します。 My Documents\IISExpress\config\applicationhost.config

検索するNewProjectName

ルート アプリケーションの physicalPath を別のものに変更します。空のフォルダーを指定します。

次のようになります。

<site name="NewProjectName" id="1">
  <application path="/" applicationPool="Clr4IntegratedAppPool">
    <virtualDirectory path="/" physicalPath="c:\Temp" />
  </application>
  <application path="/NewProjectName" applicationPool="Clr4IntegratedAppPool">
    <virtualDirectory path="/" physicalPath="c:\sourcecode\NewProjectName" />
  </application>
  <bindings>
    <binding protocol="http" bindingInformation="*:51123:localhost" />
  </bindings>
</site>
于 2013-08-30T06:57:30.637 に答える
17

このエラーがランダムに発生し始めました。iis express には 2 つのサイトがあることに気付きました。

IIS Express で実行されている 2 つの Web サイトのスクリーンショット

この二重層により、IISweb.configは最初のサイトから を読み取り、2 番目のを読み取る\WFMため、重複が見つかります。すべてのサイトを停止し\WFM、Web プロジェクト パスから を削除しました。ただし、IIS Express の一時ファイルからファイルとフォルダーをクリアすることはできます。私の場合、ソリューションの複数のバージョンがあり、1 つのソリューションの project\user config に Web プロジェクト URL に余分なパスがありました。VS 2015 がそれを追加したか、誰かが自分のユーザー構成を TFS にチェックインしました。これが他の人に役立つことを願っています。

于 2016-02-03T19:22:19.313 に答える
1

@orjantoが投稿した回答で問題は解決しましたが、その上に追加の問題がありました。 修正後も、Internet Explorer は HTML ページをファイルではなくディレクトリと認識していました。

IIS Express 構成ファイルに重複がありました。

<site name="MyAPI" id="56">
     <application path="/" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\source\repos\MyAPI" />
     </application>
     <application path="/login.html" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\source\repos\MyAPI" />
     </application>
     <bindings>
          <binding protocol="http" bindingInformation="*:57018:localhost" />
          <binding protocol="https" bindingInformation="*:44302:localhost" />
     </bindings>
 </site>

2 番目の <application> エントリの path="/login.html" に注意してください。

私のページは、ディレクトリのように「localhost:57018/login.html/」にリダイレクトされていました。

2 番目のエントリを削除すると、構成ファイルの重複の問題は修正されましたが、Internet Explorer が /login.html/ をディレクトリと見なしているように見える問題が引き続き発生しました (Internet Explorer 11)。問題を診断するために、Chrome を確認したところ、Chrome は正常に動作しました。

Internet Explorer に移動し、[ツール] > [インターネット オプション] > [全般] タブに移動しました。次に、「閲覧履歴」セクションで、履歴、Cookie と Web サイト データ、および一時を削除しました。インターネット ファイル。

于 2018-02-19T15:45:39.463 に答える
1

上記の方法をすべて試しましたが、何もうまくいきませんでした。次のようなエラーが発生し続けていました

Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to 'QueryStringModule'

ついにサーバーを変更しました

以下に示すように、プロジェクト プロパティ ビルドのIIS Expressからローカル IISへ。

ここに画像の説明を入力

そしてそれは私のために働いた。

于 2019-05-30T11:48:37.030 に答える
1

何が私のために働いた。{projectFolderParent}/.vs/config を削除しました (「隠しフォルダー/ファイルを表示する必要があります」)

非表示のアイテムを表示する

それを削除した後、コンピューターを再起動しました。

于 2020-01-08T18:28:38.277 に答える