IIS express: Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to

前端 未结 14 1777
旧巷少年郎
旧巷少年郎 2020-12-29 02:11

In Visual studio, Solution->Web.Project->Properties->Web, I have changed my Project Url from http://localhost:51123/ to http://localhost:51123/NewProj

相关标签:
14条回答
  • 2020-12-29 02:53

    All web.config files work off multiple cascading levels of inheritance at the machine, IIS, project, and folder level locations, with each providing a higher degree of specificity.

    If you're getting this error, it means you've either:

    1. Added the same key twice in the same file (unlikely since you would've seen it)
    2. The same key already exists in a separate file higher up the inheritance chain

    There can be a lot of different root causes for #2, but if you want to side step them, you can just remove any previous declarations and then re-add your own at that level (I'd pay good money for an upsert feature).

    So just add <remove> tags like this for any offending elements:

    <system.webServer>
      <modules runAllManagedModulesForAllRequests="true">
    
        <remove name="ErrorLog" />
        <remove name="ErrorMail" />
        <remove name="ErrorFilter" />
    
        <add name="ErrorLog"    type="Elmah.ErrorLogModule, Elmah"    preCondition="managedHandler" />
        <add name="ErrorMail"   type="Elmah.ErrorMailModule, Elmah"   preCondition="managedHandler" />
        <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    
      </modules>
    </system.webServer>
    
    0 讨论(0)
  • 2020-12-29 02:53

    You may find that after upgrading to the latest windows 10 service pack June 2017, this issue is because certain nodes seem to now appear under the root config (machine.config). I removed my duplicates from web.config and it all worked again.

    0 讨论(0)
  • 2020-12-29 02:53

    I had the same problem, here's what I did:

    • I changed my Server settings from Local IIS to IIS Express:

    • If it still doesn't work, I changed the port number to different port number then click the Create Virtual Directory button. Clean the solution then Rebuild.

    0 讨论(0)
  • 2020-12-29 02:54

    I started randomly getting this error. I noticed that the iis express had two sites.

    This double layer is causing IIS to read the web.config from the first site and second at \WFM, therefore finding duplicates. I just stopped all the sites and removed the \WFM from my web project path. However you could go clear the files and folders from your temp file in IIS express. In my case I had multiple versions of the solution and one solution's project\user config had an extra path in the web project URL. VS 2015 added it, or someone checked in their own user config to TFS. Hope this helps others.

    0 讨论(0)
  • 2020-12-29 02:54

    The answer that @orjanto posted solved the problem for me, but I had an additional problem on top of that. After fixing, Internet Explorer still thought that my HTML page was a directory instead of a file.

    I had duplicates in my IIS Express config file:

    <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>
    

    Note the path="/login.html" in the second <application> entry.

    My page was redirecting to "localhost:57018/login.html/" like it was a directory.

    Removing the second entry fixed the problem with the configuration file duplicates, however I continued to have a problem where Internet Explorer seemed to think that /login.html/ was a directory (Internet Explorer 11). To diagnose the problem, I checked Chrome and Chrome worked fine.

    I went into Internet Explorer, went to Tools > Internet Options > General Tab. Then under "Browsing History" section, I deleted History, Cookies and Website Data, & Temp. Internet Files.

    0 讨论(0)
  • 2020-12-29 02:58

    I tried all of the above methods and nothing worked for me. I was keep on getting the error something like

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

    At last I changed my server from

    IIS Express to Local IIS in the project property build as given below.

    and it worked for me.

    0 讨论(0)
提交回复
热议问题